J'utilise .show
pour afficher un message caché après une soumission réussie du formulaire.
Comment afficher le message pendant 5 secondes puis le masquer ?
J'utilise .show
pour afficher un message caché après une soumission réussie du formulaire.
Comment afficher le message pendant 5 secondes puis le masquer ?
Vous pouvez utiliser .delay()
avant une animation, comme ceci :
$("#myElem").show().delay(5000).fadeOut();
S'il ne s'agit pas d'une animation, utilisez setTimeout()
directement, comme ceci :
$("#myElem").show();
setTimeout(function() { $("#myElem").hide(); }, 5000);
Vous faites le second parce que .hide()
ne seraient normalement pas sur l'animation ( fx
) queue sans durée, c'est juste un effet instantané.
Ou, une autre option est d'utiliser .delay()
et .queue()
vous-même, comme ceci :
$("#myElem").show().delay(5000).queue(function(n) {
$(this).hide(); n();
});
La suggestion 2 a fonctionné parfaitement en affichant une icône de coche et en utilisant fadeOut() au lieu de hide(). Excellente réponse.
@wilsjd Non, vous ne pouvez pas, .delay()
ne fonctionnera pas avec .hide()
l'élément sera affiché puis immédiatement masqué. Voir ce jsFiddle c'est pourquoi Nick a déclaré : "S'il ne s'agit pas d'une animation, utilisez directement setTimeout(), comme ceci :...."
Hmm, je me demande si ça marchait il y a deux ans. Belle trouvaille cependant. Merci de me garder honnête.
@DustinCharles Ajoutez jQueryUI et pas seulement jQuery. jQuery ne contient pas la fonction effect(), par exemple. code.jquery.com/ui/1.12.0/jquery-ui.min.js
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.