Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

Element : évènement transitionstart

Baseline Large disponibilité

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis mars 2020.

L'évènement transitionstart est déclenché lorsqu'une transition CSS a réellement commencé, c'est-à-dire après que tout transition-delay soit écoulé.

Cet évènement n'est pas annulable.

Syntaxe

Utilisez le nom de l'évènement dans des méthodes comme addEventListener(), ou définissez une propriété de gestionnaire d'évènements.

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

ontransitionstart = (event) => { }

Type d'évènement

Un objet TransitionEvent. Hérite de Event.

Event TransitionEvent

Exemples

Ce code ajoute un écouteur pour l'évènement transitionstart :

js
element.addEventListener("transitionstart", () => {
  console.log("La transition a commencé");
});

Le même exemple, mais en utilisant la propriété ontransitionstart au lieu de addEventListener() :

js
element.ontransitionstart = () => {
  console.log("La transition a commencé");
};

Exemple interactif

Dans l'exemple suivant, nous avons un simple élément HTML <div>, mis en forme avec une transition qui inclut un délai :

html
<div class="transition">Survolez-moi</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;
}

À cela, nous ajoutons du JavaScript pour indiquer où les évènements transitionstart et transitionrun sont déclenchés.

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

transition.addEventListener("transitionrun", () => {
  message.textContent = "transitionrun déclenché";
});

transition.addEventListener("transitionstart", () => {
  message.textContent = "transitionstart déclenché";
});

transition.addEventListener("transitionend", () => {
  message.textContent = "transitionend déclenché";
});

La différence est la suivante :

  • transitionrun est déclenché lorsque la transition est créée (c'est-à-dire au début de tout délai).
  • transitionstart est déclenché lorsque l'animation effective a commencé (c'est-à-dire à la fin de tout délai).

Spécifications

Spécification
CSS Transitions Module Level 1
# transitionstart

Compatibilité des navigateurs

Voir aussi