Я пытаюсь сделать анимацию для анимации один за другим.Анимация полная бесконечная петля в jQuery
То, как я сделал это было так:
$(class).animate(
{something},
{
duration: 1000,
complete: function(){
$(class).animate(
{something},
{
duration: 1000,
complete: function(){
// More to animate when previous animation is done
}
});
}
});
До сих пор это работало достаточно хорошо. Моя проблема заключается в следующем:
Чтобы запустить эту цепочку анимаций, я нажимаю на элемент. Когда вы нажимаете на этот элемент, существует переменная «continue», которая становится истинной, поэтому невозможно вернуться к этому элементу, потому что конец анимации еще не достигнут.
Глубокая анимация в этой цепочке анимаций следующая.
complete: function(){
$(few divs).each(function(){
$(this).delay(delay).animate(
{"opacity": 1},
{
duration:2000,
complete: function(){
console.log(i + " finished"); //
if(i == 2){ // 3 divs
ongoing = false; // All the animations are finished, allowed to reclick
}
}
delay += 2000;
});
}
Проблема в том, что он показывает 3 раза 0,1,2.
0 finished
1 finished
2 finished
0 finished
1 finished
2 finished
0 finished
1 finished
2 finished
Затем я попытался это:
complete: function(){
selected = text;
$(few divs).each(function(i){
$(this).delay(delay).animate({"opacity": 1}, 2000);
delay += 2000;
}).promise().done(function(){ // All each's are finished
ongoing = false;
console.log("finished");
});
}
В этом примере есть также бесконечный цикл с «закончил» ...
Что именно происходит в моем коде и почему он не работает?
Вы пытались сделать вызов рекурсивно вместо жесткого кодирования каждого уровня? Кроме того, почему бы не включить функцию в качестве обратного вызова, а не в завершенное событие, как показано далее на странице на странице [jQuery animate] (http://api.jquery.com/animate/) – Loyalar
Нет, я не пробовал но я буду. Знаете ли вы, в чем разница между функцией обратного вызова и полным параметром функции animate? – oxynad
На самом деле, насколько я могу читать, похоже, нет никакой разницы. Я никогда не видел, чтобы кто-то помещал функции в событие Complete, а не просто как обычный обратный вызов. – Loyalar