javascript - mostrar - Ocultar div después de unos segundos
ocultar div despues de unos segundos jquery (7)
Me preguntaba, ¿cómo puedo ocultar un div en jquery después de unos segundos? Como los mensajes de Gmail, por ejemplo.
He intentado lo mejor posible pero no puedo hacerlo funcionar.
El uso del temporizador jQuery también le permitirá tener un nombre asociado con los temporizadores que están conectados al objeto. De modo que podría adjuntar varios temporizadores a un objeto y detener cualquiera de ellos.
$("#myid").oneTime(1000, "mytimer1" function() {
$("#something").hide();
}).oneTime(2000, "mytimer2" function() {
$("#somethingelse").show();
});
$("#myid").stopTime("mytimer2");
La función eval (y sus parientes, Function, setTimeout y setInterval) proporcionan acceso al compilador de JavaScript. Esto a veces es necesario, pero en la mayoría de los casos indica la presencia de una codificación extremadamente mala. La función eval es la característica más mal utilizada de JavaScript.
Esto ocultará el div después de 1 segundo (1000 milisegundos).
setTimeout(function() {
$(''#mydiv'').fadeOut(''fast'');
}, 1000); // <-- time in milliseconds
Si solo quiere ocultarse sin desvanecerse, use hide()
.
Probablemente la forma más fácil es usar el plugin de temporizadores. http://plugins.jquery.com/project/timers y luego llama algo así como
$(this).oneTime(1000, function() {
$("#something").hide();
});
Puedes probar el .delay()
$(".formSentMsg").delay(3200).fadeOut(300);
call the div establece el tiempo de demora en milisegundos y establece la propiedad que desea cambiar, en este caso usé .fadeOut () para que pueda ser animado, pero también puede usar .hide ().
jquery ofrece una variedad de métodos para ocultar el div de forma cronometrada que no requiere configuración y posterior borrado o restablecimiento de temporizadores de intervalo u otros manejadores de eventos. Aquí están algunos ejemplos.
Piel pura
// hide in one second
$(''#mydiv'').delay(1000).hide(0);
Piel animada
// start hide in one second, take 1/2 second for animated hide effect
$(''#mydiv'').delay(1000).hide(500);
desaparecer
// start fade out in one second, take 300ms to fade
$(''#mydiv'').delay(1000).fadeOut(300);
Además, los métodos pueden tomar un nombre o función de cola como un segundo parámetro (según el método). La documentación de todas las llamadas anteriores y otras llamadas relacionadas se puede encontrar aquí: https://api.jquery.com/category/effects/
Hay una manera realmente simple de hacer esto.
El problema es que .delay solo afecta a las animaciones, por lo que lo que debes hacer es hacer que .hide () actúe como una animación dándole una duración.
$("#whatever").delay().hide(1);
Al darle una corta duración, parece ser instantánea al igual que la función regular .hide.
$.fn.delay = function(time, callback){
// Empty function:
jQuery.fx.step.delay = function(){};
// Return meaningless animation, (will be added to queue)
return this.animate({delay:1}, time, callback);
}
Desde http://james.padolsey.com/javascript/jquery-delay-plugin/
(Permite el encadenamiento de métodos)