Пользовательская функция для animate.css, вызывающая проблемы

Я использую animate.css библиотека для моего проекта. Я думал, что будет проще создать функцию jQuery, которая сделает большую часть работы за меня. Вот функция:

$(function () {    
    $.fn.extend({
        animateCss: function (animationName, callback) {
            var animationEnd = 'webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend';
            this.addClass('animated ' + animationName).one(animationEnd, function () {
                $(this).removeClass('animated ' + animationName);
                if(callback){
                    callback();
                };
            });
        }
    });

});

Это работает, я могу назвать это из объектов jQuery. Проблема в том, что когда я передаю функцию обратного вызова из одного объекта, она вызывается, но та же функция из этого объекта вызывается снова, когда ДРУГОЙ объект вызывает функцию, не передавая обратный вызов.

Я не совсем уверен, как это может произойти, я пришел из Java-фона. Есть ли способ, которым эта функция может сохранить переменную обратного вызова, переданную для других объектов?

1 ответ

Вот пример, я использовал здесь минимум, но прелесть css3 в том, что для его работы не требуется JavaScript, а только браузер для его интерпретации; следовательно css3 работает только до сих пор.

Вся документация по анимации находится здесь, и вот один простой пример отказов:

.title-large {
  font-size: 48px;
  }
<link href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.5.2/animate.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<div class="bounce animated title-large">Animate me</div>

Я думаю, вы либо не имеете доступа к HTML, либо хотите динамически добавлять различные анимации? В любом случае вы можете добавить любые классы, которые захотите, и удалить их после завершения анимации, что я и делаю по ссылке выше на демонстрационной странице github. Надеюсь это поможет!

Другие вопросы по тегам