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