MDN Web Docs

Syntax

Use the event name in methods like addEventListener(), or set an event handler property.

js

addEventListener("transitionstart", (event) => { })
ontransitionstart = (event) => { }

Event type

A TransitionEvent. Inherits from Event.

Examples

This code adds a listener to the transitionstart event:

js

element.addEventListener("transitionstart", () => {
  console.log("Started transitioning");
});

The same, but using the ontransitionstart property instead of addEventListener():

js

element.ontransitionstart = () => {
  console.log("Started transitioning");
};

Live example

In the following example, we have a simple <div> element, styled with a transition that includes a delay:

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;
}

To this, we'll add some JavaScript to indicate where the transitionstart and transitionrun events fire.

js

const transition = document.querySelector(".transition");
const message = document.querySelector(".message");
transition.addEventListener("transitionrun", () => {
  message.textContent = "transitionrun fired";
});
transition.addEventListener("transitionstart", () => {
  message.textContent = "transitionstart fired";
});
transition.addEventListener("transitionend", () => {
  message.textContent = "transitionend fired";
});

The difference is that:

  • transitionrun fires when the transition is created (i.e., at the start of any delay).
  • transitionstart fires when the actual animation has begun (i.e., at the end of any delay).

Specifications

Specification
CSS Transitions Module Level 1
# transitionstart

Browser compatibility

See also

Help improve MDN

Yes No

Learn how to contribute

This page was last modified on by MDN contributors.

Read the original on developer.mozilla.org ↗