Nascondi div dopo pochi secondi

Mi stavo chiedendo, come mai in jQuery riuscirò a hide un div dopo qualche secondo? Ad esempio, come i messaggi di Gmail.

Ho fatto del mio meglio ma non riesco a farlo funzionare.

Questo nasconderà il div dopo 1 secondo (1000 millisecondi).

setTimeout(function() { $('#mydiv').fadeOut('fast'); }, 1000); // <-- time in milliseconds 
 #mydiv{ width: 100px; height: 100px; background: #000; color: #fff; text-align: center; } 
  
myDiv

Puoi provare il .delay()

 $(".formSentMsg").delay(3200).fadeOut(300); 

chiama il div imposta il tempo di ritardo in millisecondi e imposta la proprietà che vuoi modificare, in questo caso ho usato .fadeOut () in modo che possa essere animato, ma puoi anche usare .hide ().

http://api.jquery.com/delay/

C’è un modo molto semplice per farlo.

Il problema è che .delay ha effetto solo sulle animazioni, quindi quello che devi fare è fare in modo che .hide () si comporti come un’animazione dandogli una durata.

$("#whatever").delay().hide(1);

Dandole una breve durata, sembra essere istantaneo proprio come la normale funzione .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); } 

Da http://james.padolsey.com/javascript/jquery-delay-plugin/

(Consente il concatenamento di metodi)

jquery offre una varietà di metodi per hide il div in modo temporizzato che non richiede l’impostazione e successivamente la cancellazione o il ripristino di timer di intervallo o altri gestori di eventi. Ecco alcuni esempi.

Pelle pura

 // hide in one second $('#mydiv').delay(1000).hide(0); 

Nascondi animato

 // start hide in one second, take 1/2 second for animated hide effect $('#mydiv').delay(1000).hide(500); 

dissolvenza

 // start fade out in one second, take 300ms to fade $('#mydiv').delay(1000).fadeOut(300); 

Inoltre, i metodi possono assumere un nome o una funzione di coda come secondo parametro (a seconda del metodo). La documentazione per tutte le chiamate sopra e altre chiamate correlate può essere trovata qui: https://api.jquery.com/category/effects/

L’uso del timer jQuery ti permetterà anche di avere un nome associato ai timer che sono collegati all’object. In questo modo è ansible associare più timer a un object e arrestarne uno qualsiasi.

 $("#myid").oneTime(1000, "mytimer1" function() { $("#something").hide(); }).oneTime(2000, "mytimer2" function() { $("#somethingelse").show(); }); $("#myid").stopTime("mytimer2"); 

La funzione eval (e i relativi parenti, Function, setTimeout e setInterval) forniscono l’accesso al compilatore JavaScript. Questo a volte è necessario, ma nella maggior parte dei casi indica la presenza di codifiche estremamente scadenti. La funzione eval è la funzione più abusata di JavaScript.

http://www.jslint.com/lint.html

Probabilmente il modo più semplice è usare il plug-in dei timer. http://plugins.jquery.com/project/timers e quindi chiama qualcosa come

 $(this).oneTime(1000, function() { $("#something").hide(); });