Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Animation: finish-Ereignis

Baseline Weitgehend verfügbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit März 2020 browserübergreifend verfügbar.

Das finish-Ereignis des Animation-Interfaces wird ausgelöst, wenn die Animation endet, entweder wenn die Animation auf natürliche Weise abgeschlossen wird oder wenn die Methode Animation.finish() aufgerufen wird, um die Animation sofort zu beenden.

Hinweis: Der "paused"-Zustand übertrumpft den "finished"-Zustand; wenn die Animation sowohl pausiert als auch beendet ist, wird der "paused"-Zustand gemeldet. Sie können die Animation in den "finished"-Zustand versetzen, indem Sie ihre startTime auf document.timeline.currentTime - (Animation.currentTime * Animation.playbackRate) setzen.

Syntax

Verwenden Sie den Ereignisnamen in Methoden wie addEventListener() oder setzen Sie eine Ereignis-Handler-Eigenschaft.

js
addEventListener("finish", (event) => { })

onfinish = (event) => { }

Ereignistyp

Ein AnimationPlaybackEvent. Erbt von Event.

Event AnimationPlaybackEvent

Ereigniseigenschaften

Zusätzlich zu den unten aufgeführten Eigenschaften sind die Eigenschaften des übergeordneten Interfaces Event verfügbar.

AnimationPlaybackEvent.currentTime Schreibgeschützt

Die aktuelle Zeit der Animation, die das Ereignis erzeugt hat.

AnimationPlaybackEvent.timelineTime Schreibgeschützt

Der Zeitwert der Zeitleiste der Animation, die das Ereignis erzeugt hat.

Beispiele

Animation.onfinish wird mehrmals im Alice in Web Animations API Land Growing/Shrinking Alice Game verwendet. Hier ist ein Fall, bei dem wir Pointer-Ereignisse zurück zu einem Element hinzufügen, nachdem dessen Opazitätsanimation es eingeblendet hat:

js
// Add an animation to the game's ending credits
const endingUI = document.getElementById("ending-ui");
const bringUI = endingUI.animate(keysFade, timingFade);

// Pause said animation's credits
bringUI.pause();

// This function removes pointer events on the credits.
hide(endingUI);

// When the credits are later faded in,
// we re-add the pointer events when they're done
bringUI.onfinish = (event) => {
  endingUI.style.pointerEvents = "auto";
};

Spezifikationen

Spezifikation
Web Animations
# dom-animation-onfinish
Web Animations
# finish-event

Browser-Kompatibilität

Siehe auch