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

View in English Always switch to English

Element: transitionend Ereignis

Baseline Weitgehend verfügbar

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

Das transitionend Ereignis wird ausgelöst, wenn ein CSS-Übergang abgeschlossen ist. Falls ein Übergang vor seiner Vollendung entfernt wird, etwa wenn die transition-property entfernt oder display auf none gesetzt wird, wird das Ereignis nicht generiert.

Das transitionend Ereignis wird in beide Richtungen ausgelöst - sowohl wenn es zum Übergangszustand wechselt als auch wenn es vollständig in den Standard- oder Nicht-Übergangszustand zurückkehrt. Wenn es keine Übergangsverzögerung oder -dauer gibt, wenn beide auf 0s gesetzt sind oder keiner erklärt ist, gibt es keinen Übergang und keines der Übergangsereignisse wird ausgelöst. Wenn das transitioncancel Ereignis ausgelöst wird, wird das transitionend Ereignis nicht ausgelöst.

Dieses Ereignis ist nicht stornierbar.

Syntax

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

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

ontransitionend = (event) => { }

Ereignistyp

Ein TransitionEvent. Erbt von Event.

Event TransitionEvent

Beispiele

Dieser Code holt ein Element, das einen definierten Übergang hat, und fügt einen Listener für das transitionend Ereignis hinzu:

js
const transition = document.querySelector(".transition");

transition.addEventListener("transitionend", () => {
  console.log("Transition ended");
});

Dasselbe, aber mit ontransitionend:

js
const transition = document.querySelector(".transition");

transition.ontransitionend = () => {
  console.log("Transition ended");
};

Live-Beispiel

Im folgenden Beispiel haben wir ein einfaches <div>-Element, das mit einem Übergang, der eine Verzögerung beinhaltet, gestaltet ist:

html
<div class="transition">Hover over me</div>
<div class="message"></div>
css
.transition {
  width: 100px;
  height: 100px;
  background: red;
  transition-property: transform, background;
  transition-duration: 2s;
  transition-delay: 1s;
}

.transition:hover {
  transform: rotate(90deg);
  background: transparent;
}

Dazu fügen wir etwas JavaScript hinzu, um anzuzeigen, dass die transitionstart, transitionrun, transitioncancel und transitionend Ereignisse ausgelöst werden. In diesem Beispiel, um den Übergang abzubrechen, hören Sie auf, über dem Übergangselement zu schweben, bevor der Übergang endet. Damit das transitionend Ereignis ausgelöst wird, bleiben Sie über dem Übergang, bis der Übergang endet.

js
const message = document.querySelector(".message");
const el = document.querySelector(".transition");

el.addEventListener("transitionrun", () => {
  message.textContent = "transitionrun fired";
});

el.addEventListener("transitionstart", () => {
  message.textContent = "transitionstart fired";
});

el.addEventListener("transitioncancel", () => {
  message.textContent = "transitioncancel fired";
});

el.addEventListener("transitionend", () => {
  message.textContent = "transitionend fired";
});

Das transitionend Ereignis wird in beide Richtungen ausgelöst: wenn das Kästchen das Drehen beendet und die Deckkraft 0 oder 1 erreicht, abhängig von der Richtung.

Wenn es keine Übergangsverzögerung oder -dauer gibt, wenn beide auf 0s gesetzt sind oder keiner erklärt ist, gibt es keinen Übergang und keines der Übergangsereignisse wird ausgelöst.

Wenn das transitioncancel Ereignis ausgelöst wird, wird das transitionend Ereignis nicht ausgelöst.

Spezifikationen

Spezifikation
CSS Transitions Module Level 1
# transitionend

Browser-Kompatibilität

Siehe auch