我有图像滑块,其中图像相互替换的超时。我使用jQuery函数setInterval(),但有一个小问题,在最小化浏览器窗口后,这个函数保持“工作”,我恢复浏览器窗口图像以难以置信的高速替换彼此,就像窗口最小化后的整个时间setInterval()收集操作,但在恢复窗口后执行它们。
当窗口最小化时,如何在浏览器上暂停setInterval()最小化或保持交换图像?
发布于 2011-10-12 20:35:18
animate()的文档明确提到:
由于requestAnimationFrame()的性质,永远不应使用
setInterval或setTimeout循环对动画进行排队。为了保留CPU资源,支持requestAnimationFrame的浏览器不会在窗口/选项卡不显示时更新动画。如果在动画暂停时继续通过setInterval或setTimeout对动画进行排队,则所有排队的动画将在窗口/选项卡重新获得焦点时开始播放。若要避免此潜在问题,请使用循环中最后一个动画的回调,或将函数附加到元素.queue()以设置开始下一个动画的超时。
因此,如果可能,您可以在动画的回调中调用setTimeout()以链接下一个周期,或者在对setTimeout()的调用之间对animate()的调用进行queue()。
编辑:根据注释中的请求编辑,下面是一个简单的queue()示例。下面的代码强制幻灯片动画之间有两秒钟的延迟:
$("selector").slideUp("slow").queue(function(next) {
window.setTimeout(next, 2000);
}).slideDown("slow");https://stackoverflow.com/questions/7739657
复制相似问题