jQuery Animation Queue And .stop (true) - PullRequest
       20

jQuery Animation Queue And .stop (true)

1 голос
/ 10 января 2012

Прежде всего - конечной целью здесь является создание собственного выпадающего меню для изучения jQuery.Если я слишком быстро включаю и выключаю мышь на навигационных кнопках, очередь анимации создается и анимация продолжается в течение нескольких секунд после остановки.Я нашел несколько веток форума, в которых указано, что .stop (true) является решением проблем с наращиванием очереди анимации jQuery.Тем не менее, это не решает мою проблему при использовании нескольких анимаций в выражении.

Вот код (я пропустил CSS)

1 Ответ

2 голосов
/ 10 января 2012

Вам необходимо добавить еще .stop(true,true), чтобы остановить слайд / вверх.

http://jsfiddle.net/Tentonaxe/kZ78R/

$(document).ready(function() {
    $("div.bSlider ul li").hover(function() {
        $(this).stop(true, true).animate({ backgroundColor: "#898989", color: "#d01d33" }, 500, function() {}).find("ul").stop(true,true).slideDown(200, function(){});
    }, function() {
        $(this).stop(true, true).animate({ backgroundColor: "#d01d33", color: "#ffc074"}, 0, function() {}).find("ul").stop(true,true).slideUp(100, function(){});
    });
});

Редактировать: Дополнительная информация

Причинавам нужен второй .stop(), потому что .stop() останавливает анимацию только на выбранном элементе, а не на его дочерних элементах.Поскольку <ul> является дочерним элементом выбранного элемента, его анимация не была остановлена.

...