我有这段代码。
$(document).ready(function() {
$('#box').hide();
$(window).bind('scroll', function(){
if($(this).scrollTop() > 200) {
$("#box").fadeIn(300);
}
else {
$("#box").fadeOut(300);
}
});
});
所以当我向下滚动200px时会出现div。当我向上滚动时,它会消失。这很好,直到我做了很多。
如果我像一个疯子一样上下滚动,即使在我停下来之后,div也会不停地淡入淡出。这与这个实例无关,它在过去发生了很多事情,我一直想知道如何解决它(通过让它尽快停止,而不是每次我上下滚动都这样做)。
这可能吗?
答案 0 :(得分:3)
jQuery有一个stop()方法 - http://api.jquery.com/stop/
本文介绍如何使用它,似乎正是您正在寻找的: http://www.learningjquery.com/2009/01/quick-tip-prevent-animation-queue-buildup
答案 1 :(得分:1)
使用stop
docs功能
您只需分别拨打$('#box').stop(true,true).fadeIn(300);
和$('#box').stop(true,true).fadeOut(300);
答案 2 :(得分:1)
在更多动画排队之前尝试使用stop():
$(document).ready(function() {
$('#box').hide();
$(window).bind('scroll', function(){
if($(this).scrollTop() > 200) {
$("#box").stop().fadeIn(300);
}
else {
$("#box").stop().fadeOut(300);
}
});
});
请参阅此处的文档:http://api.jquery.com/stop/
答案 3 :(得分:1)
您必须向队列添加停止功能,如下所示: $( '#框')停止(真).fadeOut(300);
function stop()描述:see here
答案 4 :(得分:0)
.clearQueue()比.stop()
工作得更好