jQuery animate zurücksetzen

hoctar

Erfahrenes Mitglied
Hallo :)
Ich habe ein div das ich mit animate auf eine bestimmte Höhe schrinke.
HTML:
$(this).animate({height: '10px'},{duration:300});

Wie kann ich das div wieder auf seine Ursprüngliche Höhe stellen ?
Das div hat keine Eigenschaften die die Höhe definieren. Die höhe wird normalerweise vom Inhalt bestimmt.
 
Die ursprüngliche Höhe kannst du eingangs per height() ermitteln...diese müsstest du irgendwo zwischenspeichern, dann kannst du die später wieder auslesen.
 
Kann man die Höhe nicht irgendwie auf auto stellen? Es könnte sein das sich der Inhalt im DIV verändert und die Höhe dann nicht merh ursprünglich ist.
 
jQuery kennt leider immer nur den letzten Stand.

Das einzige in der Richtung ist
Code:
$el.animate({'height':'hide'},500).animate({'height':'show'},500);

Optional kann jQuery.UI aber auch zwischen CSS-Klassen hin und her animieren. Ist wohl das sinnvollste ;o)

[edit]
Wenn's egal ist ob beim wiederherstellen animiert wird kannst du natürlich auch einfach so was machen wie:
Code:
$el.css('height','auto');
$el.css('height','100%');
$el.removeAttr('style');
Per animate funktioniert das mit den 100% natürlich leider nicht, dann hüpft es ca. genau so wie per $.css() ;o)
[/edit]
 
Zuletzt bearbeitet:
Ah das mit dem auto Attribute ist eine gute Idee.
So könnte man das machen:
HTML:
$(this).css('height', 'auto');
var height = $(this).height();
$(this).css('height', '10px');

$(this).animate({height: height +'px'},{duration:300});
 
Zurück