JQuery: element - Erhalte den finalen css-Wert (s) während der Animation

8

Stellen Sie sich das folgende Szenario vor:

%Vor%

Was ist die richtige Methode, um den endgültigen Wert einer Animation zu erhalten, bevor abgeschlossen ist? Wenn ich direkt auf die CSS-Eigenschaften zugreife, erhalte ich die aktuellen Werte. Ich habe den obigen Fall vereinfacht. Der tatsächliche Code ist nicht in der gleichen Funktion gebunden, so dass ich nicht einfach eine Variable erstellen kann, die diesen Wert enthält, auf den ich mich später beziehen kann.

Vielen Dank im Voraus.

BEARBEITEN:

Ich denke, ich konnte nicht gut ausdrücken, was ich zu tun versuche. Meine Frage, überarbeitet:

%Vor%

Ziehen Sie in Erwägung, auf diese Schaltfläche zu klicken, bevor die Animation abgeschlossen ist.

    
inhan 05.02.2012, 21:39
quelle

3 Antworten

1

Wann brauchen Sie die endgültige Höhe? Wenn Sie die Höhe benötigen, sobald die Animation abgeschlossen ist, können Sie leicht eine Rückruffunktion als zweites Argument an .slideDown anhängen, die die css-Eigenschaften (oder $(this).height() ) liest, sobald die Animation abgeschlossen ist.

Wenn Sie die endgültige Höhe der Animation vorhersagen wollen, während sie noch läuft, sind die Dinge nicht so einfach, weil AFAIK Sie nur auf die berechnete Höhe der Elemente zugreifen können, die bereits vom Browser gerendert werden, können Sie die Höhe nicht lesen Elemente in zukünftigen Renderings. Aber wenn Sie das Element ausblenden, bevor Sie es einfügen, könnten Sie die berechnete Höhe ( .height() ) mit .data() an das DOM-Element anhängen, bevor Sie es verstecken und dann diesen Wert lesen, um die endgültige Höhe zu erhalten.

Bearbeiten:

Eigentlich könnten die Dinge ziemlich einfach sein: Lies einfach die Höhe des Elements mit css('height') vor , starte die Animation (aber nachdem sie ausgeblendet wurde) und speichere den Wert mit data : Look Hier ein Beispiel: Ссылка

    
Simon 05.02.2012, 21:53
quelle
1

Der übliche Weg ist die slideDown Callback-Funktion:

%Vor%

Demo: Ссылка

    
mu is too short 05.02.2012 21:49
quelle
-1

Verwenden Sie jQuerys Höhenfunktion.

element.height ();

    
LeonardChallis 05.02.2012 21:44
quelle

Tags und Links