2009-07-25 15 views
0

Warum ist der Wert der Höhe des Testdiv die gleiche vor und nach der ausblenden Animation?jquery hide height

$(document).ready(function() {   
    $("#test").hide("slow", function() { 
     alert($("#test").height()); 
    }); 
}); 

<div id="test"> 
    test 
    <br /> 
    test 
    <br /> 
    test 
</div> 

Antwort

1

Ich bin mir nicht ganz sicher, wie die hide() -Animation genau funktioniert, aber wenn sie die Standardgröße des Elements ändert, um den Schrumpfeffekt zu erzielen, wird sie wahrscheinlich auf die Originalgröße nach der Animation zurückgesetzt erledigt.

Die Art und Weise jQuery wirklich verbirgt Dinge ist durch Einstellung eines der CSS-Stile, die ein Element verbirgt (ich denke, es setzt nur Anzeige: keine;). Die Animation ist nur ein paar ausgefallene Effekte, die das Element nicht dauerhaft verändern.

+0

Die Animation wird von einem Callback zur Verfügung gestellt Aufruf der Effekt-Bibliothek vor hide() –

+0

Danke für die anwser ich denke, ich werde manuell die Höhe auf 0, nachdem die Animation fertig ist. – Pickels

+1

können Sie $ ("# test") tun. Hide ("langsam", function() {alert ($ ("# test"). Height());}) height (0); –

1

Hide() - Funktion versteckt nur das div, es ändert nicht die Höhe. Fügt nur einen Stil hinzu = "display: none;" zu dem Element.

+0

Ich sehe vielen Dank. – Pickels

0

können Sie in den Rückruf schreiben style.height=' ';