Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 离开“窗口”选项卡时图像堆叠(重叠)_Javascript_Jquery_Html_Css_Browser - Fatal编程技术网

Javascript 离开“窗口”选项卡时图像堆叠(重叠)

Javascript 离开“窗口”选项卡时图像堆叠(重叠),javascript,jquery,html,css,browser,Javascript,Jquery,Html,Css,Browser,当我离开页面选项卡,然后返回到页面选项卡时,我的图像会在窗口中移动(2行),所有图像都会相互堆叠。 JS代码(学分到) 实例:这是我最近在Chrome和Firefox中注意到的。当您转到另一个选项卡并返回时,动画似乎会做一些古怪的事情。我还没有找到一个好的解决方案,但你并不孤单。这是我最近在Chrome和Firefox中注意到的。当您转到另一个选项卡并返回时,动画似乎会做一些古怪的事情。我还没有找到一个好的解决方案,但你并不孤单。好吧,你已经知道你的应用程序正在失控。问题在于您的函数无限运行,超

当我离开页面选项卡,然后返回到页面选项卡时,我的图像会在窗口中移动(2行),所有图像都会相互堆叠。
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");