Javascript
JavaScript permet de gérer par programmation, les propriétés de transition et les événements liés.
Prenons l'exemple d'une div :
<div id="elt"></div>
Dans notre script, nous récupérons dans la constante elt la div. On lui ajoute son style de départ.
const elt = document.querySelector("div#elt");
elt.style.border = "2px solid black";
elt.style.width = "100px";
elt.style.height = "100px";
elt.style.backgroundColor = "red";
Définition : Propriétés
transitionProperty
elt.style.transitionProperty = "width, background-color";
transitionDuration
elt.style.transitionDuration = "3s";
transitionDelay
elt.style.transitionDelay = "2s";
transitionTimingFunction
elt.style.transitionTimingFunction = "cubic-bezier(0.1, 0.6, 0.9, 0.4)";
Au mouseover, on modifie les CSS
elt.addEventListener("mouseover", () => {
elt.style.width = "200px";
elt.style.backgroundColor = "green";
});
Au mouseout, on remet les CSS d'origines
elt.addEventListener("mouseout", () => {
elt.style.width = "100px";
elt.style.backgroundColor = "red";
});
Définition : Événements
Pour chaque propriété de style déclarée dans transitionProperty, un événement de début, un événement de fin, un événement de démarrage après un délai sont déclenchés.
transitionrun : déclenché au début d'une transition
elt.addEventListener("transitionrun ", event => {
console.log(event);
});
transitionstart : déclenché après le retard potentiel (transitionDelay ).
elt.addEventListener("transitionrun ", event => {
console.log(event);
});
transitionend : déclenché à la fin de la transition.
elt.addEventListener("transitionrun ", event => {
console.log(event);
});
Les propriétés propertyName (nom du CSS modifié) et elapsedTime (durée de seconde de la transition) sont ajoutées à l'objet event.