113 of 119 menu

Methode animate

Die Methode animate ermöglicht es, Animationseffekte für verschiedene CSS-Eigenschaften zu erstellen. Der einzige obligatorische Parameter ist ein Objekt mit CSS-Eigenschaften, ähnlich dem, das wir an die Methode css übergeben. Viele Eigenschaften, die nicht-numerische Werte oder mehrere Werte haben, können nicht mit der Grundfunktionalität von jQuery animiert werden (z.B. background-color). Auch werden nicht immer abgekürzte Namen von CSS-Eigenschaften unterstützt, z.B. font - stattdessen muss fontSize oder font-size verwendet werden. Vor Werten kann '+=' oder '-=' gesetzt werden, in diesem Fall wird der angegebene Wert zum aktuellen Wert der Eigenschaft addiert oder subtrahiert. Statt numerischer Werte können auch show, hide oder toggle gesetzt werden. Alle jQuery-Effekte, einschließlich animate, können global deaktiviert werden, indem die Einstellung jQuery.fx.off = true verwendet wird, was den Wert der Dauer auf 0 setzt.

Syntax

Der erste Parameter der Animation ist ein Objekt mit CSS-Eigenschaften und ihren Werten im Format Schlüssel: Wert, die wir animieren möchten. Die restlichen Parameter gelten als optional. Der zweite Parameter bestimmt die Dauer der Animation in Millisekunden, standardmäßig 400ms. Der dritte Parameter ist die Übergangsfunktion für den Übergang (standardmäßig ist dies swing), und der vierte - eine Callback-Funktion, die nach Abschluss der Animation ausgeführt wird:

.animate(Eigenschaften, [Dauer ], [Übergangsfunktion ], [Callback-Funktion ]);

Die Zeit kann nicht nur in Millisekunden angegeben werden, sondern auch mit den Schlüsselwörtern slow (600ms) und fast (200ms), je größer der Wert, desto langsamer die Animation. Dem Methode können verschiedene Optionen als zweiter Parameter übergeben werden, in Form eines JavaScript-Objekts, das Paare Schlüssel: Wert enthält:

.animate(Eigenschaften, Optionen);

Lassen Sie uns zum Beispiel für die CSS-Eigenschaften width und height den Wert toggle setzen. Die Dauer auf 5000ms, wir übergeben die Übergangsfunktionen als Objekt, für die Breite wird es eine lineare Funktion sein, und für die Höhe - easeOutBounce, außerdem wird nach Abschluss der Animation einmalig eine Funktion ausgeführt (siehe Schlüssel complete), die nach dem Element mit #test ein Div mit der Aufschrift 'Animation complete.' platziert:

$('#test').animate({ width: 'toggle', height: 'toggle' }, { duration: 5000, specialEasing: { width: 'linear', height: 'easeOutBounce' }, complete: function() { $(this).after('<div>Animation complete.</div>'); } });

Die folgende Tabelle listet die Eigenschaften und Methoden des Objekts options und ihre Beschreibung auf:

Name Beschreibung
duration Dauer der Animation in Millisekunden - String oder Zahl. Standardmäßig 400ms.
easing Legt fest, welche Übergangsfunktion verwendet werden soll. Standardmäßig swing.
queue Boolescher Wert oder String. Standardmäßig true. Gibt an, ob die Animation in die Warteschlange gestellt werden soll. Bei einem Wert von false startet die Animation sofort. Wenn der Parameter als String übergeben wird, wird die Animation in die Warteschlange mit diesem Namen gestellt. Bei Verwendung einer Warteschlange mit benutzerdefiniertem Namen startet die Animation nicht automatisch; um sie zu starten - verwenden Sie dequeue('queuename').
specialEasing Hier können Sie ein Objekt übergeben, in dem die Schlüssel CSS-Eigenschaften sind und die Werte die entsprechenden Übergangsfunktionen.
step Eine Funktion, die für jede animierte Eigenschaft jedes animierten Elements aufgerufen wird. Sie ermöglicht es, das Tween-Objekt zu modifizieren, um den Wert der Eigenschaft zu ändern, bevor er gesetzt wird. Akzeptiert als Parameter den aktuellen Wert tween und das Tween-Objekt.
progress Eine Funktion, die nach jedem Animationsschritt aufgerufen wird, jeweils nur einmal pro Element, unabhängig von der Anzahl der animierten Eigenschaften. Die Funktion akzeptiert drei Parameter: animation (als Promise), progress (Zahl von 0 bis 1) und remainingMs (Anzahl der verbleibenden Millisekunden).
complete Eine Funktion, die einmalig nach Abschluss der Animation des Elements aufgerufen wird. Die Funktion akzeptiert animation (als Promise).
start Eine Funktion, die aufgerufen wird, wenn die Animation des Elements beginnt. Die Funktion akzeptiert animation (als Promise) und jumpedToEnd (Boolescher Wert. Wenn true, dann wird die Animation automatisch beendet).
done Eine Funktion, die aufgerufen wird, wenn die Animation des Elements endet (ihr Promise wurde erfolgreich abgeschlossen). Die Funktion akzeptiert animation (als Promise) und jumpedToEnd (Boolescher Wert. Wenn true, dann wird die Animation automatisch beendet).
fail Eine Funktion, die aufgerufen wird, wenn die Animation des Elements mit einem Fehler endet (ihr Promise wurde mit einem Fehler abgeschlossen). Die Funktion akzeptiert animation (als Promise) und jumpedToEnd (Boolescher Wert. Wenn true, dann wird die Animation automatisch beendet).
always Eine Funktion, die aufgerufen wird, wenn die Animation des Elements abgeschlossen oder ohne Abschluss angehalten wird (ihr Promise wurde erfolgreich oder mit einem Fehler abgeschlossen). Die Funktion akzeptiert animation (als Promise) und jumpedToEnd (Boolescher Wert. Wenn true, dann wird die Animation automatisch beendet).

Beispiel

Lassen Sie uns beim Klicken auf die Schaltfläche #left das grüne Quadrat nach links schieben, und bei der Schaltfläche #right nach rechts um 50px, außerdem setzen wir die Dauer auf 600ms - mit dem Befehl slow:

<button id="left">left</button> <button id="right">right</button> <div class="block"></div> div { position: absolute; background-color: green; left: 50px; width: 100px; height: 100px; margin: 5px; } $('#right').click(function() { $('.block').animate({'left': '+=50px'}, 'slow'); }); $('#left').click(function() { $('.block').animate({'left': '-=50px'}, 'slow'); });

Siehe auch

  • Methode show,
    die Elemente sanft einblendet
  • Methode stop,
    die es erlaubt, eine laufende Animation anzuhalten
  • Methode delay,
    die eine Verzögerung der Ausführung von Ereignissen setzt
  • Eigenschaft jQuery.fx.off,
    die es erlaubt, Animationen global zu deaktivieren
  • Selektor animated,
    der Elemente auswählt, die momentan in einer Animation verwendet werden
azbydeenesfrkakkptruuz