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: transitioncancel-Ereignis

Baseline
Weitgehend verfügbar

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

Das transitioncancel-Ereignis wird ausgelöst, wenn eine CSS-Transition abgebrochen wird.

Syntax

Verwenden Sie den Ereignisnamen in addEventListener():

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

Alternativ können Sie ihn der Event-Handler-Eigenschaft der Schnittstelle zuweisen:

js
ontransitioncancel = (event) => { }

Ereignistyp

Ein TransitionEvent. Erbt von Event.

Event TransitionEvent

Beispiele

Dieser Code ruft ein Element ab, für das eine Transition definiert ist, und fügt einen Listener für das transitioncancel-Ereignis hinzu:

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

transition.addEventListener("transitioncancel", () => {
  console.log("Transition canceled");
});

Dasselbe mit der Eigenschaft ontransitioncancel anstelle von addEventListener() (beachten Sie jedoch, dass dadurch gegebenenfalls andere über ontransitioncancel hinzugefügte Event-Listener ersetzt werden):

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

transition.ontransitioncancel = () => {
  console.log("Transition canceled");
};

Interaktives Beispiel

Im folgenden Beispiel verwenden wir ein einfaches <div>-Element, für das eine Transition mit einer Verzögerung definiert ist:

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

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

Wir fügen JavaScript hinzu, um anzuzeigen, dass die Ereignisse transitionstart, transitionrun, transitioncancel und transitionend ausgelöst werden. Um die Transition in diesem Beispiel abzubrechen, bewegen Sie den Mauszeiger vor ihrem Ende von der Box weg. Damit das transitionend-Ereignis ausgelöst wird, lassen Sie den Mauszeiger bis zum Ende der Transition über der Box.

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 transitioncancel-Ereignis wird ausgelöst, wenn die Transition in einer der beiden Richtungen abgebrochen wird, nachdem das transitionrun-Ereignis aufgetreten ist und bevor das transitionend-Ereignis ausgelöst wird.

Wenn keine Verzögerung oder Dauer für die Transition festgelegt ist, beide Werte 0s betragen oder keiner der beiden Werte deklariert ist, findet keine Transition statt und keines der Transition-Ereignisse wird ausgelöst.

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

Spezifikationen

Spezifikation
CSS Transitions Module Level 1
# transitioncancel
CSS Transitions Module Level 1
# dom-globaleventhandlers-ontransitioncancel

Browser-Kompatibilität

Siehe auch