我在另一个标签上时间隔堆栈 - firefox

时间:2011-08-18 16:28:33

标签: jquery firefox animation stack

感谢阅读。

在我的主页上,我制作了一个脚本,通过列表制作列表项来改变他们的课程。

事实是,在Firefox中,当我在另一个标签上一段时间后,动画开始堆叠。当我回到包含我的主页的选项卡时,循环以非常高的速度开始,并且在所有堆叠的动画完成之前不会恢复正常。

如何阻止这个? :S

编辑: 让我试着解释一下...... 当列表项的类改变时,那里会有一些渐弱的动画。每隔9秒,一些图形和文字就会因为它而消失,而其他人则因此而退色。

因此,如果我在另一个Firefox标签上,例如写在这里,然后我回到我的网站标签,这个动画开始变得疯狂,就像他们等着我回去一样,他们就像每一个0.1一样几秒钟,直到所有等待完成的人,他们回到通常每9秒更换一次。

3 个答案:

答案 0 :(得分:2)

自5.0起,Firefox引入了setInterval clamping。我不知道这是否是导致问题的原因,请在动画代码中尝试使用.stop()

$("selector").stop(true,true).animate(...)

答案 1 :(得分:2)

您可能需要阅读http://api.jquery.com/animate/#notes-0

处的第二个音符

答案 2 :(得分:0)

如何使用setTimeout而不是setInterval。 setInterval将叠加,因为setInterval中的代码每隔一段时间调用一次。具有递归调用的setTimeout将不会堆叠,因为每个后续调用都需要先前完成。

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