J'essaie de créer un effet où la page se charge et après 5 secondes, le message de réussite à l'écran s'estompe ou glisse vers le haut.
Comment puis-je atteindre cet objectif?
Construit en javascript setTimeout .
setTimeout(
function()
{
//do something special
}, 5000);
MISE À JOUR : vous voulez attendre depuis la fin du chargement de la page, alors mettez ce code dans votre $(document).ready(...);
script.
MISE À JOUR 2 : jquery 1.4.0 a introduit la .delay
méthode. Vérifiez-le . Notez que .delay ne fonctionne qu'avec les files d'attente d'effets jQuery.
setTimeout
.Utilisez un minuteur javascript normal:
Cela attendra 5 secondes après que le DOM soit prêt. Si vous voulez attendre que la page soit réellement
loaded
vous devez utiliser ceci:EDIT: En réponse au commentaire du PO demandant s'il existe un moyen de le faire dans jQuery et de ne pas utiliser
setTimeout
la réponse, c'est non. Mais si vous vouliez le rendre plus "jQueryish", vous pourriez l'envelopper comme ceci:Vous pourriez alors l'appeler comme ceci:
la source
J'ai rencontré cette question et j'ai pensé fournir une mise à jour sur ce sujet. jQuery (v1.5 +) inclut un
Deferred
modèle qui (bien qu'il n'adhère pas à la spécification Promises / A avant jQuery 3) est généralement considéré comme un moyen plus clair d'aborder de nombreux problèmes asynchrones. La mise en œuvre d'une$.wait()
méthode utilisant cette approche est particulièrement lisible je crois:Et voici comment vous pouvez l'utiliser:
Cependant , si, après une pause, vous souhaitez uniquement effectuer des actions sur une sélection de jQuery unique, alors vous devriez être en utilisant natif de jQuery
.delay()
que je crois utilise aussi de différé sous le capot:la source
Placez votre code à l'intérieur du
{ }
etc.
la source
J'ai utilisé celui-ci pour une superposition de messages qui peut être fermée immédiatement en cliquant ou il se ferme automatiquement après 10 secondes.
la source
.delay()
et elle peut être imbriquéeLa bibliothèque Underscore propose également une fonction "delay":
la source
Sur la base de la réponse de Joey, j'ai trouvé une solution prévue (par jQuery, lire sur la «file d'attente»).
Il suit quelque peu la syntaxe jQuery.animate () - permet d'être enchaîné avec d'autres fonctions fx, prend en charge 'slow' et d'autres jQuery.fx.speeds tout en étant entièrement jQuery. Et sera géré de la même manière que les animations, si vous les arrêtez.
Le terrain de test jsFiddle avec plus d'utilisations (comme montrer .stop ()), peut être trouvé ici .
le cœur de la solution est:
le tout comme un plugin, prenant en charge l'utilisation de $ .wait () et $ (..). wait ():
Remarque: comme l'attente ajoute à la pile d'animation, $ .css () est exécuté immédiatement - comme il est supposé: comportement jQuery attendu.
la source
la source
Sachez que c'est une vieille question, mais j'ai écrit un plugin pour résoudre ce problème que quelqu'un pourrait trouver utile.
https://github.com/madbook/jquery.wait
vous permet de faire ceci:
la source