Element: transitionrun Ereignis

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015.

Das transitionrun Ereignis wird ausgelöst, wenn ein CSS-Übergang erstmals erstellt wird, d.h. bevor eine transition-delay begonnen hat.

Dieses Ereignis ist nicht abbrechbar.

Syntax

Verwenden Sie den Ereignisnamen in Methoden wie addEventListener(), oder setzen Sie eine Ereignishandlereigenschaft.

js
addEventListener("transitionrun", (event) => {});

ontransitionrun = (event) => {};

Ereignistyp

Eigenschaften des Ereignisses

Erbt auch Eigenschaften von seinem Elternteil Event.

TransitionEvent.propertyName Nur lesbar

Ein String, der den Namen der CSS-Eigenschaft enthält, die mit dem Übergang verbunden ist.

TransitionEvent.elapsedTime Nur lesbar

Ein float, der die Zeitmenge angibt, die der Übergang in Sekunden gelaufen ist, als dieses Ereignis ausgelöst wurde. Dieser Wert wird nicht von der transition-delay-Eigenschaft beeinflusst.

TransitionEvent.pseudoElement Nur lesbar

Ein String, der mit :: beginnt, und den Namen des Pseudo-Elements enthält, auf dem die Animation läuft. Wenn der Übergang nicht auf einem Pseudo-Element, sondern auf dem Element läuft, ein leerer String: ''.

Beispiele

Dieser Code fügt einen Listener für das transitionrun Ereignis hinzu:

js
el.addEventListener("transitionrun", () => {
  console.log(
    "Transition is running but hasn't necessarily started transitioning yet",
  );
});

Dasselbe, aber unter Verwendung der ontransitionrun-Eigenschaft anstelle von addEventListener():

js
el.ontransitionrun = () => {
  console.log(
    "Transition started running, and will start transitioning when the transition delay has expired",
  );
};

Live-Beispiel

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

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

.transition:hover {
  transform: rotate(90deg);
  background: rgb(255 0 0 / 0%);
}

Dazu fügen wir etwas JavaScript hinzu, um anzuzeigen, wo die transitionstart und transitionrun Ereignisse ausgelöst werden.

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

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

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

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

Der Unterschied ist, dass:

  • transitionrun wird ausgelöst, wenn der Übergang erstellt wird (d.h. zu Beginn einer Verzögerung).
  • transitionstart wird ausgelöst, wenn die tatsächliche Animation begonnen hat (d.h. am Ende einer Verzögerung).

Das transitionrun wird auch ausgelöst, wenn der Übergang abgebrochen wird, bevor die Verzögerung abläuft. Wenn es keine Übergangsverzögerung gibt oder transition-delay negativ ist, werden sowohl transitionrun als auch transitionstart ausgelöst.

Spezifikationen

Specification
CSS Transitions
# transitionrun

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch