Остановить JQuery делать свое дело? - PullRequest
3 голосов
/ 19 октября 2011

У меня есть этот код.

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

Так что, когда я прокручиваю вниз 200px, появляется div.Когда я прокручиваю назад, он исчезнет.Это нормально, пока я не сделаю это много.

Если я прокручиваю вверх и вниз как чокнутый, div продолжает исчезать и исчезать даже после того, как я остановлюсь.Это не относится только к этому случаю, это случалось много раз в прошлом, и я всегда хотел знать, как это исправить (делая так, чтобы это останавливалось, как только я это делал, не делая этого каждый раз, когда прокручивал вверх и вниз)).

Возможно ли это?

Ответы [ 5 ]

3 голосов
/ 19 октября 2011

jQuery имеет метод stop () - http://api.jquery.com/stop/

В этой статье описывается, как его использовать, похоже, именно то, что вы ищете: http://www.learningjquery.com/2009/01/quick-tip-prevent-animation-queue-buildup

1 голос
/ 19 октября 2011

Вы должны добавить функцию остановки в свою очередь следующим образом: . $ ( '# Ящик') остановка (истина) .fadeOut (300);

функция остановки () описание: см. Здесь

1 голос
/ 19 октября 2011

Попробуйте использовать 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/

1 голос
/ 19 октября 2011

Используйте функцию stop документы

Вам просто нужно позвонить $('#box').stop(true,true).fadeIn(300); и $('#box').stop(true,true).fadeOut(300); соответственно

0 голосов
/ 01 ноября 2011

.clearQueue () работал намного лучше, чем .stop ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...