Как заблокировать событие JS, когда анимация заканчивается? - PullRequest
0 голосов
/ 09 февраля 2019

У меня есть карусель, для которой я использую событие mousewheel DOMMouseScroll, чтобы переместить ее с помощью колеса мыши, я использую следующее условие для определения, перемещается ли колесо вверх или вниз.

event.originalEvent.wheelDelta > 0 || event.originalEvent.detail < 0

Это работает хорошоно когда я быстро перемещаю колесико мыши, событие происходит много раз, и карусель прослушивается.

Как можно каким-то образом заблокировать событие, когда заканчивается анимация моей карусели?Или определите, что событие может выполняться только каждые 2 секунды или что-то похожее.

Это полный код события, которое я вызываю.

$(document).on('mousewheel DOMMouseScroll', "#"+id+" .element", function(event){
    event.preventDefault();

    if (event.originalEvent.wheelDelta > 0 || event.originalEvent.detail < 0) {

        remove_styles();
        $("#"+id+" .content_carrusel ."+actual_record).addClass('previous');
        $("#"+id+" .content_carrusel ."+new_element(1)).addClass('actual');
        $("#"+id+" .bullet ."+actual_record).addClass('active');

        var init = new_element(1);

        setTimeout(function(){ $("#"+id+" .content_carrusel ."+init).addClass('card_next');}, 50);
        setTimeout(function(){ $("#"+id+" .content_carrusel ."+init).addClass('next'); }    , 100);
        new_element(-1);
    }
    else
    {
        remove_styles();
        $("#"+id+" .content_carrusel ."+actual_record).addClass('next');
        $("#"+id+" .content_carrusel ."+new_element(-1)).addClass('actual');
        $("#"+id+" .bullet ."+actual_record).addClass('active');

        var init = new_element(-1);

        setTimeout(function(){ $("#"+id+" .content_carrusel ."+init).addClass('card_previous');}, 50);
        setTimeout(function(){ $("#"+id+" .content_carrusel ."+init).addClass('previous');  }   , 100);
        new_element(1);
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...