Поведение jQuery slideToggle - PullRequest
0 голосов
/ 04 марта 2012

Когда я парю над корзиной (#cart_block_top) и, не дожидаясь окончания анимации, резко удаляю ее из корзины, анимация все равно быстро быстро заканчивается, и только тогда она скользит вверх. Вот код:

$('#cart_block_top').hover(function() {
    $("#cart_block_slide_content").stop(false, true).slideToggle('slow');
});

А вот и ссылка: http://layot.prestatrend.com/ Кто-нибудь поможет?

Ответы [ 2 ]

0 голосов
/ 04 марта 2012

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

$("#cart_block_slide_content").stop().slideToggle(1000);
0 голосов
/ 04 марта 2012

Вы также можете использовать callback, чтобы узнать, когда анимация завершена, и вызвать

$("#cart_block_slide_content").stop(false, true).slideToggle('slow');

только если анимация не выполняется.

Цитирование Jquery :

.slideToggle ([длительность] [, обратный вызов])

duration: строка или число, определяющее продолжительность анимации.

callbackA функция для вызова после завершения анимации.

Например:

var isAnimationCompleted = true;

function onAnimationCompleted(){
    isAnimationCompleted = true;
}

$('#1').hover(function(){
    if (isAnimationCompleted){
        $("#div").stop(false, true).slideToggle('slow',onAnimationCompleted);
        isAnimationCompleted = false;
    }
});

Пример JSFiddle live

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