gpt4 book ai didi

javascript - 在现代 jQuery 动画中 setInterval() 和 setTimeout() 是坏事吗?

转载 作者:搜寻专家 更新时间:2023-11-01 04:55:27 25 4
gpt4 key购买 nike

我在 jQuery 1.6 的动画方面遇到了一些问题。我用 jQuery 1.5 解决了这个问题。

在我的项目中,我使用 setInterval() 来制作自定义 Logo slider 。动画两个接一个地立即(不是同时)启动。当我在页面上时,一切都很顺利,但是当我进入其他选项卡并返回(一两分钟后)到我的页面项目时,一切都变得疯狂......

好的,所以我得到了一个使用 Queue() 的答案。我可以用那种方法达到同样的目的吗?

我有本书 Manning jQuery in Action 并且没有关于使用 Queue() 立即启动动画的内容。

Link to Jsfiddle

引用部分答案:

Because of the nature of requestAnimationFrame(), you should never queue animations using a setInterval or setTimeout loop.

最佳答案

一般setInterval == BADsetTimeout == GOOD 用于动画。

setInterval 将尝试播放追赶,如 nnnnnn 所述:

some browsers may queue everything and then try to catch up when your tab gets focus again

循环 animate() 的最佳方法是递归调用,例如:

var myTimeout;

var myAnimation = function () {

$('#myID').animate({
[propertyKey]:[propertyValue]
}, 5000, function() {
myTimeout = setTimeOut(myAnimation, 1000);
});
}

注意 myTimeout 是如何保持在 myAnnimation 范围之外的,从而允许停止动画

clearTimeout(myTimeout);

您可以将其连接到 window.unload 事件。

关于javascript - 在现代 jQuery 动画中 setInterval() 和 setTimeout() 是坏事吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7142192/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com