Element: transitioncancel event
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 Methoden wie addEventListener() oder setzen Sie eine Ereignishandler-Eigenschaft.
addEventListener("transitioncancel", (event) => { })
ontransitioncancel = (event) => { }
Ereignistyp
Ein TransitionEvent. Erbt von Event.
Beispiele
Dieser Code erfasst ein Element, das eine definierte Transition hat und fügt einen Listener für das transitioncancel Ereignis hinzu:
const transition = document.querySelector(".transition");
transition.addEventListener("transitioncancel", () => {
console.log("Transition canceled");
});
Das Gleiche, aber unter Verwendung der ontransitioncancel Eigenschaft anstelle von addEventListener():
const transition = document.querySelector(".transition");
transition.ontransitioncancel = () => {
console.log("Transition canceled");
};
Live-Beispiel
Im folgenden Beispiel haben wir ein einfaches <div>-Element, das mit einer Transition gestylt ist, die eine Verzögerung beinhaltet:
<div class="transition"></div>
<div class="message"></div>
.transition {
width: 100px;
height: 100px;
background: red;
transition-property: transform, background;
transition-duration: 2s;
transition-delay: 2s;
}
.transition:hover {
transform: rotate(90deg);
background: transparent;
}
Dazu fügen wir ein wenig JavaScript hinzu, um anzuzeigen, dass die Ereignisse transitionstart, transitionrun, transitioncancel und transitionend ausgelöst werden. In diesem Beispiel, um die Transition abzubrechen, hören Sie auf, die übergehende Box zu überfahren, bevor die Transition endet. Damit das Übergangsende-Ereignis ausgelöst wird, bleiben Sie über der Transition, bis sie endet.
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 beiden Richtungen nach dem Auftreten des transitionrun-Ereignisses und bevor das transitionend ausgelöst wird, abgebrochen wird.
Wenn es keine Übergangsverzögerung oder -dauer gibt, wenn beide 0s sind oder keiner deklariert ist, gibt es keine Transition 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> # transitioncancel> |
| CSS Transitions Module Level 1> # dom-globaleventhandlers-ontransitioncancel> |
Browser-Kompatibilität
Siehe auch
- Das
TransitionEventInterface - CSS-Eigenschaften:
transition,transition-delay,transition-duration,transition-property,transition-timing-function - Verwandte Ereignisse:
transitionrun,transitionstart,transitionend