2012-11-05 15 views
5

Bitte kann ich versichern, dass ich das richtig mache:Re-Anzeige nach fadeOut

ich eine Nachricht, die ich zu fadeOut will, nachdem er angezeigt wurde.

Die jQuery fadeOut-Sets Anzeige: keine, sobald die Deckkraft Null ist.

Wenn ich also die gleiche Nachricht erneut anzeigen möchte, indem ich visibility: visible einstelle, wird die Nachricht nicht angezeigt, da display: none ist immer noch gesetzt.

So ist es das, was ich getan habe:

 $("#message6").fadeOut(600, function(){ 
      $("#message6").css("display",""); 
      $("#message6").css("visibility","hidden");    
     }); 

Dies funktioniert gut. Es scheint nicht sehr elegant.

Fehle ich hier etwas? Gibt es eine gute Möglichkeit, dies zu tun?

+0

Vielleicht etwas wie das: http://jsfiddle.net/lollero/T3Vm6/ – Joonas

Antwort

10

Warum Sie nicht tun:

$("#message6").fadeOut(600); 

Und Ihre Nachricht noch einmal zeigen:

$("#message6").show(); 
+0

Ah gut, weil ich die Sichtbarkeit setze: in erster Instanz sichtbar. Das mag gut sein, was ich vermisst habe. Ich sollte stattdessen in erster Linie show verwenden. – codepuppy

+0

Ich verwende nur Sichtbarkeit, wenn mein Element noch Platz in meinem DOM reservieren sollte. – iappwebdev

0

Ich hatte schon immer seltsame Probleme mit den Methoden .fadeIn() und .fadeOut() von jQuery, also animiere ich normalerweise nur die Opazität. Es ist nichts falsch an diesem Ansatz, wenn Sie nur Dinge verstecken und zeigen.

$('#message6').animate({opacity:0}, 200); 

Wenn Sie nicht jede Art von Fading Animation möchten, können Sie nur verwenden, um die .hide() und .show() Methoden oder .css({opacity:0}) oder eine .animate() Methode mit 0 Animationsdauer.

+0

Wie bei @ Simon, ich denke, Sie offenbaren den Fehler meiner Möglichkeiten, die ich nicht .hide .show verwendet habe. – codepuppy

0

Warum nicht so etwas wie diese

$(document).ready(function() { 
     $('#myLabel').fadeOut(1000, function() { 
      $(this).html(""); //reset the label after fadeout 
     }); 
    });​ 

Sample

+0

Ok ich sehe, was Sie sagen, und wenn ich den Inhalt der Nachricht dynamisch einstellen würde, würde dies tatsächlich die Aufgabe erfüllen. Aber das ist eine feste Nachricht. – codepuppy