Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] Animar array con tiempo entre elementos

Estas en el tema de Animar array con tiempo entre elementos en el foro de Jquery en Foros del Web. Tengo este código: Código: var arr = $(".col-central div"); arr.each(function(index, element) { $(element).fadeOut(1000); }); Y lo que me pasa es que se van todos los ...
  #1 (permalink)  
Antiguo 05/10/2015, 03:29
 
Fecha de Ingreso: octubre-2015
Mensajes: 2
Antigüedad: 8 años, 6 meses
Puntos: 0
Pregunta Animar array con tiempo entre elementos

Tengo este código:
Código:
 var arr = $(".col-central div");		
		arr.each(function(index, element) {
			$(element).fadeOut(1000);
        });
Y lo que me pasa es que se van todos los divs a la vez. Lo que busco es que se vayan 1 a 1.

He probado con animate y me pasa lo mismo...

Que es lo que tengo mal??

Gracias por adelantado
  #2 (permalink)  
Antiguo 05/10/2015, 14:24
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Animar array con tiempo entre elementos

Bienvenido a Foros del Web.

Eso ocurre porque el método se aplica a todos los elementos, sin embargo, no se establece un orden de ejecución, por lo que el efecto se produce en todos a la vez.

Una manera de hacer esto es mediante el uso de temporizadores:

Código Javascript:
Ver original
  1. $(document).ready(function(){
  2.     var divs = $(".col-central div"),
  3.         total = divs.length,
  4.         i = 0,
  5.         countdown = setInterval(function(){
  6.             $(divs[i++]).fadeOut();
  7.             if (i == total){
  8.                 clearInterval(countdown);
  9.             }
  10.         }, 1000);
  11. });

Lo que realiza el script de arriba es lo siguiente:
  1. Toma al conjunto de elementos sobre el cual se operará.
  2. Calcula el total de ellos.
  3. Establece una variable contadora para llevar un control de los elementos.
  4. Establece un temporizador cíclico el cual ejecutará una función cada 1000 milésimas de segundo (1 segundo).
  5. En la función, ocultamos al elemento actual y aumentamos el valor del contador en uno.
  6. Verificamos si el valor actualizado del contador es igual al total de elementos. De ser así, cancelamos al temporizador, caso contrario, se seguirá ocultando a los siguiente elementos (los que queden).

DEMO

Cabe señalar que el temporizador se ejecuta de forma automática.

Un saludo
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 08/10/2015, 15:32
 
Fecha de Ingreso: octubre-2015
Mensajes: 2
Antigüedad: 8 años, 6 meses
Puntos: 0
Respuesta: Animar array con tiempo entre elementos

Fantástico, es exactamente lo que necesitaba. Muchas Gracias por la ayuda.

Etiquetas: animacion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:48.