Mi chiedevo, come mai in jQuery riuscirò a nascondere un div dopo qualche secondo? Ad esempio, come i messaggi di Gmail.Nascondi div dopo qualche secondo
Ho fatto del mio meglio ma non riesco a farlo funzionare.
Mi chiedevo, come mai in jQuery riuscirò a nascondere un div dopo qualche secondo? Ad esempio, come i messaggi di Gmail.Nascondi div dopo qualche secondo
Ho fatto del mio meglio ma non riesco a farlo funzionare.
Nasconde il div dopo 1 secondo (1000 millisecondi).
setTimeout(function() {
$('#mydiv').fadeOut('fast');
}, 1000); // <-- time in milliseconds
Se si vuole solo nascondere senza sbiadire, utilizzare hide()
.
** e ** hai battuto pazzamente * Joel Coehoorn * molto bene in un colpo solo! :) – cregox
@James, Di sicuro non c'è differenza nel risultato finale, ma suppongo che l'implementazione usando '.delay()' sia più "nativa" ed elegante per 'jQuery'. –
è possibile sostituire '.fadeOut ('fast')' con '.hide()' per nascondere immediatamente il div. – Raptor
Probabilmente il modo più semplice è utilizzare il plug-in timer. http://plugins.jquery.com/project/timers e quindi chiamare qualcosa come
$(this).oneTime(1000, function() {
$("#something").hide();
});
C'è qualche motivo valido per usare il plug-in timer su setTimeout o setInterval? – spender
Direi che scaricare e collegare un plug-in jquery è * meno * facile rispetto al semplice utilizzo di setTimeout. –
Non penso che sia necessariamente una cosa negativa, ma poiché è raro che io usi mai dei timer nel mio codice, avere quel plugin in giro (leggi: codice extra, gonfia) per quelle poche volte non supera il costo. Se stavi scrivendo un sacco di codice che aveva bisogno di usare i timer, e stavo usando jQuery, posso capire perché questo plugin sarebbe molto utile per mantenere la sintassi jQuery ... –
$.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 dei metodi)
Uso del timer jQuery vi permetterà anche di avere un nome associato con i timer che sono attaccato all'oggetto. In questo modo è possibile associare più timer a un oggetto e arrestarne uno qualsiasi.
$("#myid").oneTime(1000, "mytimer1" function() {
$("#something").hide();
}).oneTime(2000, "mytimer2" function() {
$("#somethingelse").show();
});
$("#myid").stopTime("mytimer2");
La funzione eval (e dei suoi parenti, funzione, 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.
È possibile provare la .delay()
$(".formSentMsg").delay(3200).fadeOut(300);
chiamata div impostare il tempo di ritardo in millisecondi e impostare la proprietà che si desidera modificare, in questo caso ho usato .fadeOut() in modo che potrebbe essere animato, ma puoi anche usare .hide().
Questo è meglio perché non devo usare setTimeoutand code è più facile da leggere. –
+1 perché gestisce l'esecuzione multipla dello stesso codice – Fanckush
C'è un modo molto semplice per farlo.
Il problema è che .delay esegue solo animazioni, quindi quello che devi fare è fare in modo che .hide() si comporti come un'animazione dandogli una durata.
$("#whatever").delay().hide(1);
Dando un bel breve durata, sembra essere immediato, proprio come la funzione .nascosto regolare.
jquery offre una varietà di metodi per nascondere 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.
Pure nascondere
// hide in one second
$('#mydiv').delay(1000).hide(0);
animato nascondere
// start hide in one second, take 1/2 second for animated hide effect
$('#mydiv').delay(1000).hide(500);
sfumando
// start fade out in one second, take 300ms to fade
$('#mydiv').delay(1000).fadeOut(300);
Inoltre, i metodi possono prendere un nome di coda o una funzione come secondo parametro (a seconda del metodo di). La documentazione per tutte le chiamate sopra e altre chiamate correlate può essere trovata qui: https://api.jquery.com/category/effects/
Si nasconde abbastanza bene, o ne hai bisogno per svanire? –