Просто загрузите быстрый модальный скрипт, и я попал в стену.jQuery -detecting, если завершена анимация CSS
Тестирование анимации css и все работает отлично. Я могу открыть модальный из ссылки, но когда я пытаюсь открыть то же модальность снова сразу после по какой-то причине
.one("animationend webkitAnimationEnd oAnimationEnd MSAnimationEnd",
function(e){
modalBg.removeClass('flex fadeOut animated');
$(this).off(e);
});
увольняет мгновенно ... Когда я пытаюсь нажать другую ссылку каждый раз, когда он работает отлично. Я попытался установить нулевую переменную modalBg
, и она делает трюк, но консоль возвращает ошибку, которая не определена removeClass
. Поэтому по какой-то причине modalBg.removeClass('flex fadeOut animated');
все еще запущен.
Вот JSBin
Вот весь код:
$(document).ready(function() {
$(".modal-link").on("click", function() {
attribute = $(this).attr('href');
attribute = attribute.replace('#','');
console.log(attribute);
$('.modal-bg[data-modal='+ attribute +']').addClass("flex animated fadeIn");
$('.modal-bg[data-modal='+ attribute +'] .modal').addClass("animated fadeInDown");
});
$('.modal-close').on('click', function() {
modalBg = $(this).closest('.modal-bg');
modalBg.removeClass('fadeIn');
modalBg.addClass('fadeOut');
modalBg.one("animationend webkitAnimationEnd oAnimationEnd MSAnimationEnd",
function(e){
modalBg.removeClass('flex fadeOut animated');
$(this).off(e);
});
});
});
Я чувствую, что вы должны использовать JQuery анимации функцию чтобы воспользоваться обработчиком анимации завершения. – Mistergreen
@Mistergreen, это не проблема, он отлично работает с анимацией cfcfece css. Я не могу понять, почему событие запускается, когда я дважды нажимаю на одну и ту же ссылку в строке ... Интересно, когда я нажимаю ссылку в третий раз, он снова работает :) Я не хочу использовать анимации jQuery, которые они довольно медленны, CSS. – CyberFountain