У меня есть несколько функций, которые выполняют разные анимации в разных частях HTML. Я хотел бы объединить или поставить в очередь эти функции, чтобы они запускали анимацию последовательно и не в одно и то же время.Как сгруппировать или поставить в очередь пользовательские функции с помощью JQuery?
Я пытаюсь автоматизировать несколько событий в последовательности, чтобы выглядеть так, как пользователь нажимал на различные кнопки или ссылки.
Возможно, я мог бы сделать это с помощью функций обратного вызова, но тогда мне пришлось бы вытащить все анимации из разных функций и перегруппироваться в правильном шаблоне.
Помогает ли jQuery «queue»? Я не мог понять documentation для очереди.
Пример, JQuery:
function One() {
$('div#animateTest1').animate({ left: '+=200' }, 2000);
}
function Two() {
$('div#animateTest2').animate({ width: '+=200' }, 2000);
}
// Call these functions sequentially so that the animations
// in One() run b/f the animations in Two()
One();
Two();
HTML:
<div id="animatetest" style="width:50px;height:50px;background-color:Aqua;position:absolute;"></div>
<div id="animatetest2" style="width:50px;height:50px;background-color:red;position:absolute;top:100px;"></div>
Спасибо.
EDIT: Я пробовал его с timers, но я думал, что есть лучший способ сделать это.
EDIT # 2:
Позвольте мне быть более конкретным. У меня есть несколько функций, связанных с нажатием & событий наведения на разных элементах страницы. Обычно эти функции не имеют ничего общего друг с другом (они не ссылаются друг на друга). Я хотел бы моделировать пользователя, проходящего через эти события, без изменения кода моих существующих функций.
Я думаю, что с помощью функции обратного вызова, обеспечиваемой функции одушевленной является способом пойти на это. – seth
Есть способ сделать это сейчас в jquery, используя систему обещаний. Пожалуйста, проверьте мой ответ здесь: http://stackoverflow.com/a/18216474/726239 – Shaunak