La règle @keyframes
Lorsque vous spécifiez des styles CSS dans la @keyframes règle, l’animation passera progressivement du style actuel au nouveau style à certains moments.
Pour qu’une animation fonctionne, vous devez la lier à un élément.
L’exemple suivant lie l’animation « exemple » à l’élément <div>. L’animation durera 4 secondes et changera progressivement la couleur de fond de l’élément <div> de « rouge » à « jaune »:
/* The animation code */
@keyframes example {
from {
background-color: red;
}
to {
background-color: yellow;
}
}
/* The element to apply the animation to */
div {
width: 100px;
height: 100px;
background-color: red;
animation-name: example;
animation-duration: 4s;
}
}
Laanimation-iteration-countpropriété spécifie le nombre de fois qu'une animation doit être exécutée.
L'exemple suivant exécute l'animation 3 fois avant son arrêt:
div {
width: 100px;
height: 100px;
position: relative;
background-color: red;
animation-name: example;
animation-duration: 4s;
animation-iteration-count: 3;
}
L'exemple suivant utilise la valeur "infinite" pour que l'animation continue à jamais:
div {
width: 100px;
height: 100px;
position: relative;
background-color: red;
animation-name: example;
animation-duration: 4s;
animation-iteration-count:
infinite;
}
Laanimation-directionpropriété spécifie si une animation doit être lue en avant, en arrière ou en alternance.
La propriété animation-direction peut avoir les valeurs suivantes:
normal– L’animation est lue normalement (en avant). C’est par défautreverse– L’animation est lue en sens inverse (en arrière)alternate– L’animation est jouée en avant puis en arrièrealternate-reverse– L’animation est lue en premier, puis en avant
La animation-timing-function propriété spécifie la courbe de vitesse de l’animation.
La propriété animation-timing-function peut avoir les valeurs suivantes:
ease– Spécifie une animation avec un début lent, puis rapide, puis se termine lentement (par défaut)linear– Spécifie une animation avec la même vitesse du début à la finease-in– Spécifie une animation avec un démarrage lentease-out– Spécifie une animation avec une fin lenteease-in-out– Spécifie une animation avec un début et une fin lentscubic-bezier(n,n,n,n)– Vous permet de définir vos propres valeurs dans une fonction cubic-bezier
L’exemple suivant montre les différentes courbes de vitesse pouvant être utilisées:
#div1 {animation-timing-function: linear;}
#div2 {animation-timing-function: ease;}
#div3 {animation-timing-function: ease-in;}
#div4 {animation-timing-function: ease-out;}
#div5 {animation-timing-function: ease-in-out;}Les animations CSS n’affectent pas un élément avant la lecture de la première image clé ou après la lecture de la dernière image clé. La propriété animation-fill-mode peut remplacer ce comportement.
La animation-fill-mode propriété spécifie un style pour l’élément cible lorsque l’animation n’est pas en lecture (avant le début, après la fin ou les deux).
La propriété animation-fill-mode peut avoir les valeurs suivantes:
none– Valeur par défaut. L’animation n’appliquera aucun style à l’élément avant ou après son exécution.forwards– L’élément conservera les valeurs de style définies par la dernière image clé (dépend de l’animation-direction et de l’animation-itération-nombre).backwards– L’élément obtiendra les valeurs de style définies par la première image clé (dépend de la direction de l’animation) et les conservera pendant la période de délai d’animation.both– L’animation suivra les règles pour les deux sens, en étendant les propriétés de l’animation dans les deux sens
L’exemple suivant permet à l’élément <div> de conserver les valeurs de style de la dernière image clé à la fin de l’animation:
div {
width: 100px;
height: 100px;
background: red;
position: relative;
animation-name: example;
animation-duration: 3s;
animation-fill-mode: forwards; }Animation Sténographie
L’exemple ci-dessous utilise six propriétés d’animation:
div {
animation-name: example;
animation-duration: 5s;
animation-timing-function: linear;
animation-delay: 2s;
animation-iteration-count: infinite;
animation-direction: alternate;
}
Le même effet d’animation que ci-dessus peut être obtenu en utilisant la animation propriété abrégée :
div {
animation: example 5s linear 2s infinite alternate;
}La animation-play-state propriété spécifie si l’animation est en cours d’exécution ou en pause.Les valeurs:
- paused (Spécifie que l’animation est en pause)
- running (Spécifie que l’animation est en cours d’exécution)
- initial (Définit cette propriété à sa valeur par défaut)
- inherit (Hérite cette propriété de son élément parent)
Mettre en pause une animation:
div {
animation-play-state: paused;
}Exemple:
div:hover {
animation-play-state: paused;
}
Illustration de ce cour:


