Javascript 离开“窗口”选项卡时图像堆叠(重叠)
当我离开页面选项卡,然后返回到页面选项卡时,我的图像会在窗口中移动(2行),所有图像都会相互堆叠。Javascript 离开“窗口”选项卡时图像堆叠(重叠),javascript,jquery,html,css,browser,Javascript,Jquery,Html,Css,Browser,当我离开页面选项卡,然后返回到页面选项卡时,我的图像会在窗口中移动(2行),所有图像都会相互堆叠。 JS代码(学分到) 实例:这是我最近在Chrome和Firefox中注意到的。当您转到另一个选项卡并返回时,动画似乎会做一些古怪的事情。我还没有找到一个好的解决方案,但你并不孤单。这是我最近在Chrome和Firefox中注意到的。当您转到另一个选项卡并返回时,动画似乎会做一些古怪的事情。我还没有找到一个好的解决方案,但你并不孤单。好吧,你已经知道你的应用程序正在失控。问题在于您的函数无限运行,超
JS代码(学分到)
实例:这是我最近在Chrome和Firefox中注意到的。当您转到另一个选项卡并返回时,动画似乎会做一些古怪的事情。我还没有找到一个好的解决方案,但你并不孤单。这是我最近在Chrome和Firefox中注意到的。当您转到另一个选项卡并返回时,动画似乎会做一些古怪的事情。我还没有找到一个好的解决方案,但你并不孤单。好吧,你已经知道你的应用程序正在失控。问题在于您的函数无限运行,超出了您的控制(即,当访问者打开新选项卡并离开活动窗口时) 对于调用它们自己的函数,您必须非常小心。创建无限循环会消耗CPU资源并使访问者的浏览器崩溃 但是,您可以使用JavaScript的窗口对象来控制动画。假设您在浏览器中打开了四个选项卡。浏览器为每个选项卡创建一个窗口对象。您可以使用窗口对象的onblur和onfocus事件处理程序来了解访问者在浏览器级别执行的操作:
goMoving();
window.onblur = stopMoving;
window.onfocus = goMoving;
var int;
function goMoving() {
int = setInterval(function() {
moveTheBoxes();
}, 400); //TODO (AzizAG): Rework the timer function
}
function stopMoving() {
window.clearInterval(int);
}
function startMoving(img) {
/* Animation */
}
成功的关键是第2-3行。goMoving函数是反复调用MovetheBox的新方法。因此,请更改动画:
.animate({
left: "+=" + amount
}, time, "linear");
好吧,你已经知道你的申请正在失控。问题在于您的函数无限运行,超出了您的控制(即,当访问者打开新选项卡并离开活动窗口时) 对于调用它们自己的函数,您必须非常小心。创建无限循环会消耗CPU资源并使访问者的浏览器崩溃 但是,您可以使用JavaScript的窗口对象来控制动画。假设您在浏览器中打开了四个选项卡。浏览器为每个选项卡创建一个窗口对象。您可以使用窗口对象的onblur和onfocus事件处理程序来了解访问者在浏览器级别执行的操作:
goMoving();
window.onblur = stopMoving;
window.onfocus = goMoving;
var int;
function goMoving() {
int = setInterval(function() {
moveTheBoxes();
}, 400); //TODO (AzizAG): Rework the timer function
}
function stopMoving() {
window.clearInterval(int);
}
function startMoving(img) {
/* Animation */
}
成功的关键是第2-3行。goMoving函数是反复调用MovetheBox的新方法。因此,请更改动画:
.animate({
left: "+=" + amount
}, time, "linear");
你所说的“返工”定时器功能是什么意思?(为什么?)我要说的是:把上面的代码和你的算法放在一起,从而得出满足你要求的结论。谜团的关键是窗口对象的onblur和onfocus事件处理程序。你所说的
返工
计时器函数是什么意思?(为什么?)我要说的是:将上面的代码和你的算法放在一起,以便得出满足你要求的结论。神秘的关键是窗口对象的onblur和onfocus事件处理程序。
.animate({
left: "+=" + amount
}, time, "linear");