【发布时间】:2013-09-13 21:34:04
【问题描述】:
我正在使用它来顺序淡入一堆 div 的:
$('#headerwrapper div').each(function(i) {
$(this).delay(999 + (i * 999)).fadeIn();
});
我试图弄清楚如何通过 .scroll 来阻止它。 (暂停/恢复会很好,但在搜索并尝试了几十件事之后,我已经准备好放弃这么多的想要了。)
滚动功能如下:
$(window).scroll(function(){
if ($(this).scrollTop() > 20) {
$('#headerwrapper').fadeOut();
} else {
$('#headerwrapper').fadeIn();
}
});
能够杀死 .each 函数似乎如此重要的原因是已完成 产品将加载数十张图像,对我来说,如果这些图像甚至不在 该函数应该停止视口以释放处理/内存。
我不知道父 div 的 .fadeOut 是否足以真正停止/杀死 .each 函数,或者它是否仍在后台连续触发。杀死这个 .each 函数的更正确的方法是什么?
【问题讨论】:
-
您无法停止
.each()函数本身,因为它是同步代码,并且您的.scroll()处理程序在.each()完成之前不会被调用。您可以停止的是.each()中的代码排队的多个动画 - 它们是异步的,因此您的.scroll()处理程序可以在它们完成之前被调用。