Jquery 当i';我在另一个标签上——firefox

Jquery 当i';我在另一个标签上——firefox,jquery,firefox,animation,stack,Jquery,Firefox,Animation,Stack,谢谢你的阅读 在我的主页上,我制作了一个脚本,它循环通过一个列表来制作列表项,以更改它们的类 问题是,在Firefox中,当我在另一个选项卡上停留一段时间时,动画开始堆叠。当我返回到包含主页的选项卡时,循环以非常高的速度开始,直到所有堆叠动画完成后才恢复正常 如何阻止这一切 编辑: 让我试着解释一下。。 当列表项的类更改时,会出现一些淡入淡出的动画。每隔9秒,一些图形和文本会消失,而另一些则会因此而消失 如果我在另一个Firefox标签上,比如在这里写东西,然后我回到我的站点标签,这个动画开始疯

谢谢你的阅读

在我的主页上,我制作了一个脚本,它循环通过一个列表来制作列表项,以更改它们的类

问题是,在Firefox中,当我在另一个选项卡上停留一段时间时,动画开始堆叠。当我返回到包含主页的选项卡时,循环以非常高的速度开始,直到所有堆叠动画完成后才恢复正常

如何阻止这一切

编辑: 让我试着解释一下。。 当列表项的类更改时,会出现一些淡入淡出的动画。每隔9秒,一些图形和文本会消失,而另一些则会因此而消失


如果我在另一个Firefox标签上,比如在这里写东西,然后我回到我的站点标签,这个动画开始疯狂地运行,就像他们在等我回去一样,它们每0.1秒发生一次,直到所有等待的都完成,然后每9秒返回到正常更改状态。

使用setTimeout而不是setInterval怎么样。setInterval将堆叠,因为setInterval中的代码会在每个间隔内被调用。带有递归调用的setTimeout不会叠加,因为每个后续调用都需要上一个调用才能完成

function do_timeout() {
    /*do your timeout code*/
    setTimeout(function () {do_timeout();}, 1000);
}
$(document).ready(function () {
    do_timeout();
});

不如使用setTimeout而不是setInterval。setInterval将堆叠,因为setInterval中的代码会在每个间隔内被调用。带有递归调用的setTimeout不会叠加,因为每个后续调用都需要上一个调用才能完成

function do_timeout() {
    /*do your timeout code*/
    setTimeout(function () {do_timeout();}, 1000);
}
$(document).ready(function () {
    do_timeout();
});
Firefox从5.0开始推出。我不知道这是否是问题的原因,请在动画代码中尝试使用
.stop()

Firefox从5.0开始推出。我不知道这是否是问题的原因,请在动画代码中尝试使用
.stop()


您可能需要阅读

上的第二条注释您可能需要阅读

上的第二条注释我想他说的是firefox标签,而不是他自己网站中的一些标签。谢谢您的回答!当鼠标停留在某个列表项上时,我正在使用clearInterval,因此我将研究setTimeout()并返回给您:)好吧,我刚刚尝试了它,它产生了完全相同的奇怪效果。我想他说的是firefox标签,而不是他自己网站中的一些标签。谢谢你的回答!当鼠标移动到某个列表项上时,我正在使用clearInterval,因此我将研究setTimeout()并返回给您:)嗯,我刚刚尝试过它,它会产生完全相同的奇怪效果。