JQuery подождать, пока все анимации страницы не будут сделаны - PullRequest
19 голосов
/ 01 декабря 2011

Я знаю, как ждать, пока анимация не будет выполнена с

$('#element').animate(speed,function(){
//code here
});

и с несколькими элементами с

$('#element1, #element2').promise().done(function(){
//code here
});

, но как мне ждать, пока все элементов на странице сделаны анимации?Я бы предпочел не просто вставить каждый элемент, который я жду там.

Ответы [ 2 ]

45 голосов
/ 01 декабря 2011

Чтобы выбрать все, что сейчас анимируется, просто сделайте $(":animated") http://api.jquery.com/animated-selector/

В сочетании с тем, что у вас уже есть, это будет просто

$(":animated").promise().done(function() {
    //code here
});
9 голосов
/ 02 августа 2012

Ответ, данный Джереми Т, работает нормально - хотя, основываясь на комментариях на сайте jquery, на который он ссылался (http://api.jquery.com/animated-selector/),, было бы более быстрым решением добавить класс к каждому элементу на странице, который может быть анимирован, а затем выберите их, используя

    $('.animationclass').filter(':animated').promise().done(function() {
//Your function
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...