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 transitionrun

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 transitionrun est déclenché lorsqu'une transition CSS est créée, c'est-à-dire avant que tout transition-delay n'ait commencé.

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("transitionrun", (event) => { })

ontransitionrun = (event) => { }

Type d'évènement

Un objet TransitionEvent. Hérite de Event.

Event TransitionEvent

Exemples

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

js
el.addEventListener("transitionrun", () => {
  console.log(
    "La transition est en cours mais n'a pas nécessairement commencé à se produire",
  );
});

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

js
el.ontransitionrun = () => {
  console.log(
    "La transition a commencé à s'exécuter et commence à se produire lorsque le délai de transition est écoulé",
  );
};

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 el = document.querySelector(".transition");
const message = document.querySelector(".message");

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

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

el.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).

L'évènement transitionrun se produit même si la transition est annulée avant l'expiration du délai. S'il n'y a aucun délai de transition ou si le délai de transition est négatif, transitionrun et transitionstart sont tous deux déclenchés.

Spécifications

Spécification
CSS Transitions Module Level 1
# transitionrun

Compatibilité des navigateurs

Voir aussi