Tengo varias funciones para hacer diferentes animaciones a diferentes partes del HTML. Me gustaría encadenar o poner en cola estas funciones para que ejecuten las animaciones secuencialmente y no al mismo tiempo.¿Cómo puedo encadenar o poner en cola funciones personalizadas usando JQuery?
Estoy intentando automatizar múltiples eventos en secuencia para que parezca que un usuario ha estado haciendo clic en diferentes botones o enlaces.
Probablemente podría hacer esto usando funciones de devolución de llamada pero luego tendría que extraer todas las animaciones de las diferentes funciones y reagruparlas en el patrón correcto.
¿Ayuda la "cola" de jquery? No pude entender el documentation para la cola.
ejemplo, 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>
Gracias.
EDITAR: Lo intenté con timers pero pensé que había una mejor manera de hacerlo.
editar # 2:
Voy a ser más específico. Tengo múltiples funciones obligadas a hacer clic en & eventos de desplazamiento en diferentes elementos de la página. Normalmente, estas funciones no tienen nada que ver entre sí (no se refieren entre sí). Me gustaría simular que un usuario pase por estos eventos sin cambiar el código de mis funciones existentes.
Creo que el uso de la funcionalidad de devolución de llamada proporcionada por la función animado es el camino a seguir en esto. – seth
Hay una manera de hacer esto ahora en jquery usando el sistema de promesas. Por favor revisa mi respuesta aquí: http://stackoverflow.com/a/18216474/726239 – Shaunak