2014-11-13 2 views
1

Я использую этот код, чтобы остановить одновременные анимации на 2-х элементах:Как определить, когда все анимации остановлены?

$('#container').find('*').stop(true, true); 

Анимация может быть остановлена ​​конечным пользователем, парящим над кнопкой, и в этом случае анимация останавливается после завершения (что я хотеть). Однако наведение кнопки также инициирует другую функцию (удаляет и перезагружает элементы), и есть конфликт, если эта функция выполняется до завершения анимации.

Я думал, что использование 'after' или 'complete' с приведенным выше кодом может работать, но я не могу понять, что такое синтаксис.

+0

Попробуйте добавить обработчик зависания только после завершения анимации. Вам нужно показать нам больше кода и описать конфликт больше, если вы хотите получить хорошие ответы. – Spokey

+0

@Spokey: Хорошая идея о обработчике зависания. Мне просто нужно было добавить логическое событие «после» анимации. – fuey

ответ

0

им не уверен, что вы пытаетесь достичь, но для того, чтобы проверить, действительно ли там работают/ожидающие анимации на объекте с помощью JQuery, вы можете использовать .promise().done()

пример, somehing такого рода :

var animations_running; 

$('#container').promise().done(function() { 
    animations_running=false; 
}); 

$('#container').on("mouseover",".SomethingInside",function(){ 
    if(animations_running==false){ 
     //...do animations... 
     animations_running=true; 
    } 
}); 

вы можете также добавить функцию обратного вызова для анимации JQuery следующим образом:

$('#container').on("mouseover",".SomethingInside",function(){ 
    if(animations_running==false){ 
     $(this).animate({ 
      left:+=50 
     },500,function(){ 
      //...this is the callback function... 
     }); 
     animations_running=true; 
    } 
}); 
Смежные вопросы