jQuery wird 5 Sekunden lang angezeigt und dann ausgeblendet


145

Ich verwende .show, um eine versteckte Nachricht nach einer erfolgreichen Formularübermittlung anzuzeigen.

Wie wird die Nachricht 5 Sekunden lang angezeigt und dann ausgeblendet?

Antworten:


351

Sie können .delay()vor einer Animation Folgendes verwenden:

$("#myElem").show().delay(5000).fadeOut();

Wenn es sich nicht um eine Animation handelt, verwenden Sie diese setTimeout()direkt wie folgt:

$("#myElem").show();
setTimeout(function() { $("#myElem").hide(); }, 5000);

Sie machen das zweite, weil .hide()es normalerweise nicht fxohne Dauer in der Animation ( ) -Warteschlange wäre, es ist nur ein sofortiger Effekt.

Oder ist eine weitere Option zu verwenden .delay()und .queue()sich selbst, wie folgt aus :

$("#myElem").show().delay(5000).queue(function(n) {
  $(this).hide(); n();
});

1
Vorschlag 2 funktionierte perfekt mit der Anzeige eines Häkchens und der Verwendung von fadeOut () anstelle von hide (). Gute Antwort.
Kevin Zych

2
@wilsjd Nein du kannst nicht, .delay()wird nicht mit .hide()dem Element arbeiten wird angezeigt und dann sofort ausgeblendet. Siehe diese jsFiddle aus diesem Grund sagte Nick: "Wenn es keine Animation ist, benutze setTimeout () direkt wie folgt: ...."
Wesley Smith

Hmm, ich frage mich, ob das vor zwei Jahren funktioniert hat. Schöner Fund. Danke, dass du mich ehrlich hältst.
Wilsjd

Ich habe dies auch implementiert, aber wenn ich msg zweimal innerhalb von 5 Sekunden zeige, sollte es prev und erneut
anzeigen

18

Sie können den folgenden Effekt zum Animieren verwenden. Sie können die Werte gemäß Ihren Anforderungen ändern

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

1
$ (...). fadeIn (...). animieren (...). Effekt ist keine Funktion in JQuery 2.1.3
Dustin Charles

@DustinCharles Fügen Sie jQueryUI hinzu, nicht nur jQuery. jQuery enthält nicht die Funktion effect (), z. B. code.jquery.com/ui/1.12.0/jquery-ui.min.js
Rahul

0

So einfach ist das:

$("#myElem").show("slow").delay(5000).hide("slow");
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.