阻止 jQuery 做它的事情?

发布于 2024-12-10 19:37:22 字数 439 浏览 1 评论 0原文

我有这个代码。

$(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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

屋檐 2024-12-17 19:37:22

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

心意如水 2024-12-17 19:37:22

使用 stopdocs 函数

您只需要调用 $('#box').stop(true,true).fadeIn(300);$('#box').stop(true,true).fadeOut( 300); 分别

Use the stopdocs function

You simply need to call $('#box').stop(true,true).fadeIn(300); and $('#box').stop(true,true).fadeOut(300); respectively

一腔孤↑勇 2024-12-17 19:37:22

您必须将停止功能添加到队列中,如下所示:
$('#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

您的好友蓝忘机已上羡 2024-12-17 19:37:22

在更多动画排队之前尝试使用 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/停止/

Try using stop() before more animations are queued:

$(document).ready(function() {
    $('#box').hide();
    $(window).bind('scroll', function(){
        if($(this).scrollTop() > 200) {
            $("#box").stop().fadeIn(300);
        }
        else {
            $("#box").stop().fadeOut(300);
        }
    });
});

See the documentation here: http://api.jquery.com/stop/

自控 2024-12-17 19:37:22

.clearQueue() 比 .stop() 效果好得多

.clearQueue() worked much better than .stop()

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文