阻止 jQuery 做它的事情?
我有这个代码。
$(document).ready(function() {
$('#box').hide();
$(window).bind('scroll', function(){
if($(this).scrollTop() > 200) {
$("#box").fadeIn(300);
}
else {
$("#box").fadeOut(300);
}
});
});
所以当我向下滚动 200px 时,它会出现一个 div。当我向后滚动时,它就会消失。这很好,直到我经常这样做。
如果我像疯子一样上下滚动,即使我停止后,div 也会不断淡入和淡出。这不仅仅与这个实例有关,它在过去发生过很多次,我一直想知道如何修复它(通过让它尽快停止,而不是每次我上下滚动时都这样做) )。
这可能吗?
I have this code.
$(document).ready(function() {
$('#box').hide();
$(window).bind('scroll', function(){
if($(this).scrollTop() > 200) {
$("#box").fadeIn(300);
}
else {
$("#box").fadeOut(300);
}
});
});
So when I scroll down 200px it will make a div appear. When I scroll back up, it will disappear. This is fine, until I do it a lot.
If I scroll up and down like a nutter the div keeps fading in and out even after I stop. This isn't related to just this instance, it's happened a lot in the past and I've always wanted to know how to fix it (by making it stop as soon as I have, without doing it for everytime I scrolled up and down).
Is that possible?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
jQuery 有一个 stop() 方法 - http://api.jquery.com/stop/
本文描述了如何使用它,似乎正是您正在寻找的:
http://www.learningjquery.com/2009/01 /quick-tip-prevent-animation-queue-buildup
jQuery has a stop() method - http://api.jquery.com/stop/
This article describes how to use it, seems to be exactly what you're looking for:
http://www.learningjquery.com/2009/01/quick-tip-prevent-animation-queue-buildup
使用
stop
docs 函数您只需要调用
$('#box').stop(true,true).fadeIn(300);
和$('#box').stop(true,true).fadeOut( 300);
分别Use the
stop
docs functionYou simply need to call
$('#box').stop(true,true).fadeIn(300);
and$('#box').stop(true,true).fadeOut(300);
respectively您必须将停止功能添加到队列中,如下所示:
$('#box').stop(true).fadeOut(300);
函数 stop() 说明:参见此处
You have to add stop function to your queue like this:
$('#box').stop(true).fadeOut(300);
function stop() description: see here
在更多动画排队之前尝试使用 stop():
请参阅此处的文档: http://api.jquery.com/停止/
Try using stop() before more animations are queued:
See the documentation here: http://api.jquery.com/stop/
.clearQueue() 比 .stop() 效果好得多
.clearQueue() worked much better than .stop()