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

animation-range-end

Limited availability

Cette fonctionnalité n'est pas Compatible car elle ne fonctionne pas dans certains des navigateurs les plus utilisés.

Expérimental: Il s'agit d'une technologie expérimentale.
Vérifiez attentivement le tableau de compatibilité des navigateurs avant de l'utiliser en production.

La propriété CSS animation-range-end définit le point sur la chronologie où une animation doit se terminer.

Syntaxe

css
/* Mots-clé ou valeur de longueur pourcentage */
animation-range-end: normal;
animation-range-end: 80%;
animation-range-end: 700px;

/* Valeur de plage de chronologie nommée */
animation-range-end: cover;
animation-range-end: contain;
animation-range-end: cover 80%;
animation-range-end: contain 700px;

/* Valeurs globales */
animation-range-end: inherit;
animation-range-end: initial;
animation-range-end: revert;
animation-range-end: revert-layer;
animation-range-end: unset;

Valeurs

normal

Représente la fin de la chronologie. C'est la valeur par défaut.

<length-percentage>

Définit une valeur de longueur ou de pourcentage mesurée à partir du début de la chronologie.

<timeline-range-name>

Définit une plage de chronologie nommée dans la chronologie globale. La plage commence à 0%.

<timeline-range-name> <length-percentage>

Définit une longueur ou un pourcentage mesuré à partir du début de la plage de chronologie nommée.

Description

La propriété animation-range-end définit la fin de la plage d'attachement de l'animation. Modifier la fin de la plage d'attachement peut déplacer la fin de l'animation, c'est-à-dire le point où les images clés (keyframes en anglais) associées à une progression de 100% s'appliquent lorsque le nombre d'itérations est 1, et peut aussi réduire la durée effective de l'animation.

La valeur de la propriété peut être normal, une <length-percentage>, ou un <timeline-range-name> avec une <length-percentage> optionnelle. Si la valeur <timeline-range-name> n'inclut pas de <length-percentage>, le pourcentage par défaut est 100%.

La propriété animation-range-end est incluse dans la propriété raccourcie animation uniquement comme valeur de réinitialisation. Cela signifie qu'utiliser la propriété raccourcie animation réinitialise toute valeur précédemment déclarée de animation-range-end à normal ; la propriété raccourcie ne peut pas être utilisée pour définir une nouvelle valeur de animation-range-end. Lors de la création d'animations pilotées par le défilement CSS, il faut déclarer animation-range-end après toute déclaration de la propriété raccourcie animation pour éviter de réinitialiser la valeur à normal.

La propriété animation-range-end, ainsi que la propriété animation-range-start, peuvent aussi être définies à l'aide de la propriété raccourcie animation-range.

Définition formelle

Valeur initialenormal
Applicabilitétous les éléments
Héritéenon
PourcentagesRelative to the specified named timeline range if specified, otherwise relative to the entire timeline
Valeur calculéeA list where each item may be 'normal', a length percentage, or a timeline range name and a length percentage
Type d'animationNot animatable

Syntaxe formelle

animation-range-end = 
[ normal | <length-percentage> | <timeline-range-name> <length-percentage>? ]#

<length-percentage> =
<length> |
<percentage>

Exemples

Créer une chronologie de progression de vue avec une fin de plage

Dans cet exemple, la propriété animation-range-end est appliquée à un élément animé via une chronologie de progression de vue. Cela permet à l'animation d'atteindre sa dernière étape bien avant que l'élément n'atteigne la fin de sa fenêtre d'affichage conteneur.

HTML

Au milieu d'un long bloc de texte, un élément à animer est inclus. Beaucoup de texte a été ajouté pour s'assurer que le contenu déborde de son conteneur ; le texte supplémentaire est masqué ici pour plus de clarté.

html
<div class="animatedElement">

Une case à cocher est également incluse pour activer ou désactiver la propriété animation-fill-mode, afin de montrer comment cette propriété affecte les animations avec des chronologies raccourcies.

html
<label>
  <input type="checkbox" /> Ajouter <code>animation-fill-mode: forwards;</code>
</label>

CSS

Une chronologie de progression de vue est définie en utilisant la fonction view() comme valeur de la propriété animation-timeline. Cette déclaration est placée après la propriété raccourcie animation afin d'éviter de réinitialiser la valeur de la propriété longue.

La propriété animation-range-end est également définie pour que l'animation se termine plus tôt que prévu.

css
.animatedElement {
  background-color: deeppink;
  animation: appear 1ms linear;
  animation-timeline: view();
  animation-range-end: exit 25%;
}

@keyframes appear {
  from {
    background-color: rebeccapurple;
    opacity: 0;
    transform: scaleX(0);
  }

  to {
    background-color: darkturquoise;
    opacity: 0.75;
    transform: scaleX(0.75);
  }
}

Lorsque la case à cocher est activée, la propriété animation-fill-mode est appliquée à l'élément animé :

css
:has(:checked) .animatedElement {
  animation-fill-mode: forwards;
}

Les autres styles appliqués dans cet exemple sont masqués ici pour plus de clarté.

Résultat

Faites défiler pour voir l'élément s'animer. Activez ensuite la case à cocher à la fin du bloc de texte puis faites défiler à nouveau. Remarquez que l'élément termine son animation lorsqu'il a parcouru 75% de la fenêtre d'affichage, et qu'il revient à son état par défaut à ce moment-là si la propriété animation-fill-mode n'est pas appliquée.

Spécifications

Specification
Scroll-driven Animations
# animation-range-end

Compatibilité des navigateurs

Voir aussi