Pregunta

Quiero desvanecer un elemento y todos sus elementos secundarios después de un retraso de unos segundos. pero no he encontrado una manera de especificar que un efecto debería comenzar después de un tiempo especificado.

¿Fue útil?

Solución

setTimeout(function() { $('#foo').fadeOut(); }, 5000);

El 5000 es de cinco segundos en milisegundos.

Otros consejos

Uso este complemento de pausa que acabo de escribir

$.fn.pause = function(duration) {
    $(this).animate({ dummy: 1 }, duration);
    return this;
};

Llámalo así:

$("#mainImage").pause(5000).fadeOut();

Nota: no necesita una devolución de llamada.


Editar: ahora debe usar jQuery 1.4. construido en el método de retardo () . No lo he comprobado, pero supongo que es más "inteligente" que mi complemento.

Anteriormente harías algo como esto

$('#foo').animate({opacity: 1},1000).fadeOut('slow');

El primer animado no está haciendo nada ya que ya tienes opacidad 1 en el elemento, pero se detendría por el tiempo.

En jQuery 1.4, lo han incorporado en el marco para que no tengas que usar el truco como se muestra arriba.

$('#foo').delay(1000).fadeOut('slow');

La funcionalidad es la misma que el complemento jQuery.delay () original http://www.evanbot.com/article/jquery-delay-plugin/4

La mejor manera es utilizando el método de retardo jQuery:

$ ('# my_id'). delay (2000) .fadeOut (2000);

Puedes evitar usar setTimeout usando el método fadeTo () y configurando un retraso de 5 segundos en eso.

$("#hideAfterFiveSeconds").click(function(){
  $(this).fadeTo(5000,1,function(){
    $(this).fadeOut("slow");
  });
});

He escrito un complemento para permitirte agregar un retraso en la cadena.

por ejemplo $ ('# div'). fadeOut (). delay (5000) .fadeIn (); // desvanecer el elemento, esperar 5 segundos, desvanecer el elemento nuevamente.

No utiliza hacks de animación o un excesivo encadenamiento de devolución de llamada, solo código corto y simple.

http://blindsignals.com/index.php/2009/ 07 / jquery-delay /

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top