Мой вопрос уже задан в миллион раз, но я не могу найти ответ, который удовлетворяет мои потребности. Мне нужна функция, позволяющая мне последовательно воспроизводить анимацию.Последовательность анимации jQuery
Я разрабатываю сайт, содержащий много переходов CSS3 и анимацию jQuery/jQueryUI. Я разбил эти анимации на элементарные автономные функции, такие как:
- slideUpSomething();
- fadeOutSomethingElse();
- showThisOtherDude();
Эти функции могут быть все что угодно:
- animationA();
- анимацияB();
- анимацияC();
Использование обратных вызовов или очередей делает код невозможным для управления. И, честно говоря, я недостаточно хорош, чтобы контролировать их сейчас (планирование позже обучения) ... Цепочка кажется невозможной, так как я анимация различных элементов по-разному. Использование таймеров кажется ужасным для меня.
Что я мечтаю это функция «animateSequentially (последовательность)» работает следующим образом:
$(document).ready(function(){
function animationA() {/*declaration*/}
function animationB() {/*declaration*/}
function animationC() {/*declaration*/}
...
function animationZ() {/*declaration*/}
function animateSequentially(sequence) {
/* Here is the code I need */
}
$('#someButton').click(function(){
animateSequentially(
[animationA,
animationB,
animationC,
... ,
animationZ]
);
});
});
Требования заключаются в следующем:
- анимации от А до Z должно произойти один за другой
- массив анимации может быть любой длины
Очевидно, что способ кодирования не имеет значения, мне все равно, нужно ли мне использовать массив или трубу, если она работает, не вставляя обратные вызовы на века ... Кто-нибудь может помочь мне понять трюк?
С другой стороны, если вы думаете, что я должен закодировать все по-другому, я открыт для любых консультаций ...
Целых!
Возможно, ваши анимационные функции должны принимать следующие анимации в массиве в качестве аргумента, и после его завершения вызовите другую анимацию, если array.length = 0 или null, конец анимации? – user627283
Насколько вы осведомлены о ** ['TimelineMax'] (http://greensock.com/timelinemax) ** и ** [GSAP] (http://greensock.com/gsap) ** вообще? Это _exactly_ вид ситуации, которая делает большой случай для ** GSAP ** продуктов. –
@Tahir Ahmed: никогда не слышал о GSAP, я сейчас смотрю на их веб-сайт, кажется, является ответом на мои потребности. Если у вас есть время, я был бы рад прочитать краткое изложение того, как вы будете кодировать его с помощью GSAP в ответ. Желаю принять это как мой ответ ;-) –