Javascript Iframe和绝对定位元素

Javascript Iframe和绝对定位元素,javascript,iframe,position,absolute,Javascript,Iframe,Position,Absolute,我有一个小问题,就是iframe中的绝对定位元素 所以我有一个页面,页面上有一个带小游戏的iframe。游戏中有一个人,他有绝对位置的瞳孔。学生们正在用javascript移动。 一切正常,但如果我打开那个页面,继续浏览不同标签中的其他页面,在我回来后,学生们会在不同的地方(完全不是眼睛) iframe中绝对定位了更多的元素,没有一个有相同的问题,我想这是因为Javascript动画。有人遇到过类似的问题吗?我很抱歉,但由于许多原因,我不能在这里发布页面 我可以发布学生动画的脚本: functi

我有一个小问题,就是iframe中的绝对定位元素

所以我有一个页面,页面上有一个带小游戏的iframe。游戏中有一个人,他有绝对位置的瞳孔。学生们正在用javascript移动。 一切正常,但如果我打开那个页面,继续浏览不同标签中的其他页面,在我回来后,学生们会在不同的地方(完全不是眼睛)

iframe中绝对定位了更多的元素,没有一个有相同的问题,我想这是因为Javascript动画。有人遇到过类似的问题吗?我很抱歉,但由于许多原因,我不能在这里发布页面

我可以发布学生动画的脚本:

function eyes_sides(){
    $('.eyes').animate({
            left:parseInt($('.eyes').css('left'))-9
        },{duration:1500});
    $('.eyes').animate({
            left:parseInt($('.eyes').css('left'))
        },{duration:1000});
}

function eyes_roll(){
    $('.eyes').animate({
        left:parseInt($('.eyes').css('left'))-7,
        top:parseInt($('.eyes').css('top'))-18
      },{duration:1800});
    $('.eyes').animate({
        left:parseInt($('.eyes').css('left')),
        top:parseInt($('.eyes').css('top'))
      },{duration:1300});
    }

function animate_eyes(){
      var animation = random_number(1,2);
      //alert(animation);
      switch(animation){
        case 1:
          eyes_roll();
          break;
        case 2: 
          eyes_sides();
          break;  
      }
      var delay = random_number(4000,12000);          
      window.animateEyes = setTimeout(function(){animate_eyes()},delay);
    }
该脚本并不完美,但符合要求

我在想是什么导致了这个问题,也许它与选项卡不活动时运行的动画有关?也许添加“onBlur”和“onFocus”来停止/启动动画会有所帮助


谢谢你的建议

此代码用于停止动画。至少它在您的
IFRAME
上触发了
onblur
。您将很容易找到如何再次启动动画的方法

我不熟悉jQuery,但您可以“翻译”代码

window.onload=function (){
    var ifr=document.getElementById('your_iframe');
    (function (x){x.onblur=function (){clearTimeout(x.contentWindow.animatedEyes);return;}}(ifr));
    return; 
}

我想你需要这个
onBlur()
。检查这个答案:好的,我已经尝试了另一个问题的修复,还有一些关于模糊和聚焦的修复,但是没有任何帮助。我猜在iframe中,模糊和聚焦没有太大的效果。还有其他想法吗?它不需要聚焦和模糊。尝试创建一个div作为iframe的backround。您的意思是
onblur()
不能与
iframe
一起使用吗?您需要将其设置为包含IFRAME的页面中的
IFRAME
元素本身,而不是设置为IFRAME文档中的代码。