152 votes

jQuery show for 5 seconds then hide

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 ?

371voto

Nick Craver Points 313913

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();
});

1 votes

La suggestion 2 a fonctionné parfaitement en affichant une icône de coche et en utilisant fadeOut() au lieu de hide(). Excellente réponse.

2 votes

@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 :...."

0 votes

Hmm, je me demande si ça marchait il y a deux ans. Belle trouvaille cependant. Merci de me garder honnête.

18voto

Rahul Points 322

Vous pouvez utiliser l'effet ci-dessous pour animer, vous pouvez modifier les valeurs en fonction de vos besoins.

$("#myElem").fadeIn('slow').animate({opacity: 1.0}, 1500).effect("pulsate", { times: 2 }, 800).fadeOut('slow');

1 votes

$(...).fadeIn(...).animate(...).effect n'est pas une fonction dans JQuery 2.1.3

0 votes

@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

3voto

Antonio Ooi Points 50

C'est aussi simple que ça :

$("#myElem").show("slow").delay(5000).hide("slow");

Prograide.com

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.

Powered by:

X