115 of 119 menu

Método queue

El método queue nos permite trabajar con la cola de funciones vinculadas a un elemento. Consulte también el método clearQueue, que nos permite eliminar de la cola todas las funciones que no se han ejecutado.

Sintaxis

Así mostramos la cola de funciones en ejecución, vinculadas al elemento. Se puede pasar un parámetro opcional con el nombre de la cola en forma de cadena (por defecto fx - cola estándar de efectos):

.queue([nombre de cola]);

Podemos manipular la cola. Se ejecuta una vez para cada elemento. Para ello, se puede pasar como segundo parámetro un array de funciones, que reemplazará el contenido de la cola actual:

.queue([nombre de cola], nueva cola );

O se puede pasar como segundo parámetro una nueva función callback para agregar a la cola. Esta función a su vez recibe otra función como parámetro. Esto permite eliminar automáticamente el siguiente elemento de la cola y avanzar la cola:

.queue([nombre de cola], función callback(next) { next(); });

Cada elemento puede tener una o varias colas. En muchas aplicaciones se utiliza solo una (fx). Las colas permiten realizar secuencias de acciones con el elemento de forma asíncrona, sin interrumpir la ejecución del programa. La llamada queue con una función callback nos permite colocar una nueva función al final de la cola. La función callback se ejecuta una vez para cada elemento en el conjunto. Al agregar una función con queue, debemos asegurarnos de que luego se llamará al método dequeue, para que la siguiente función en la cadena funcione.

Ejemplo

Agreguemos una función personalizada. Primero, después de hacer clic en #animate, mostraremos un cuadrado rojo, que se moverá a la derecha durante 2s, luego mediante queue agregaremos una función personalizada que cambiará el color del cuadrado a verde, agregando la clase newcolor. Como puede ver, luego aquí se llama a dequeue, para quitar la función de la cola. Luego nuestro cuadrado se moverá a la izquierda medio segundo y volverá a ponerse rojo - mediante una segunda función personalizada quitamos la clase newcolor. Al finalizar la animación plegamos nuestro cuadrado:

<button id="animate">start</button> <div></div> div { position: absolute; margin: 3px; width: 50px; height: 50px; left: 0px; top: 30px; background: red; display: none; } div.newcolor { background: green; } $('#animate').click(function() { $('div') .show('slow') .animate({left: '+=200'}, 2000) .queue(function() { $(this).addClass('newcolor').dequeue(); }) .animate({left: '-=200'}, 500) .queue(function() { $(this).removeClass('newcolor').dequeue(); }) .slideUp(); });

Ejemplo

Agreguemos una cola en forma de array para eliminar la anterior. Al hacer clic en el botón #start veremos la animación del ejemplo anterior. Al hacer clic en el botón #stop detendremos la animación agregando un array vacío. Al hacer clic nuevamente en #start la animación comenzará de nuevo:

<button id="start">start</button> <button id="stop">stop</button> <div></div> div { position: absolute; margin: 3px; width: 50px; height: 50px; left: 0px; top: 30px; background: red; display: none; } div.newcolor { background: green; } $('#start').click(function() { $('div') .show('slow') .animate({left: '+=200'}, 5000) .queue(function() { $(this).addClass('newcolor').dequeue(); }) .animate({left: '-=200'}, 1500) .queue(function() { $(this).removeClass('newcolor').dequeue(); }) .slideUp(); }); $('#stop').click(function() { $('div').queue('fx', []).stop(); });

Véase también

  • método animate,
    que anima las propiedades de los elementos
  • método clearQueue,
    que permite eliminar todos los elementos no ejecutados de la cola de funciones
  • método dequeue,
    que permite ejecutar la siguiente función en la cola de funciones
Español
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Usamos cookies para el funcionamiento del sitio, análisis y personalización. El procesamiento de datos se realiza de acuerdo con la Política de privacidad.
aceptar todas configurar rechazar