Animations CSS avec @keyframes dans React
Appliquez et supprimez dynamiquement des animations @keyframes selon l’état et les événements du composant.
Animations CSS avec @keyframes dans React est une leçon React Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage React Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours React Academy comprend 4 leçons au total.
Définir @keyframes
Une règle @keyframes décrit une animation en plusieurs étapes en indiquant les valeurs des propriétés à différents points de la chronologie, avec from/to ou des pourcentages comme 0%, 50% et 100%.
Contrairement aux transitions, les images clés peuvent décrire un mouvement complexe en plusieurs phases qui s’exécute seul, sans changement d’état à chaque étape.
La notation abrégée des animations
Vous appliquez un ensemble d’images clés avec la propriété animation : animation: slideIn 400ms ease forwards. Elle regroupe le nom, la durée, la fonction de temporisation et le mode de remplissage.
Le mode de remplissage forwards maintient l’élément sur les valeurs de sa dernière image clé lorsque l’animation se termine, ce qui empêche un retour instantané au début.
Appliquer une classe d’animation via l’état
Dans React, vous ajoutez généralement une classe contenant la déclaration animation lorsque l’état devient vrai. Par exemple, l’ajout de is-entering démarre les images clés au moment où l’élément est monté ou lorsqu’un indicateur change.
La logique d’animation reste ainsi dans CSS, tandis que React décide uniquement du moment où la classe doit être ajoutée.
Mode de remplissage de l’animation
animation-fill-mode contrôle les styles appliqués avant et après l’exécution de l’animation. forwards conserve la dernière image clé, backwards applique la première image clé pendant tout délai éventuel, et both fait les deux.
Sans forwards, un élément qui s’anime vers un état visible redeviendrait invisible à la fin de l’animation.
Direction alternée de l’animation
animation-direction: alternate joue l’animation vers l’avant puis vers l’arrière à chaque répétition. Associée à animation-iteration-count: infinite, cette propriété crée un mouvement régulier d’aller-retour, semblable à un effet de pulsation ou de respiration.
C’est utile pour les indicateurs de chargement ou pour attirer subtilement l’attention par le mouvement.
Mettre en pause avec l’état de lecture de l’animation
animation-play-state peut valoir running ou paused. Vous pouvez le piloter depuis l'état React, par exemple en mettant en pause un bandeau défilant au survol en changeant de classe.
Comme elle se met en pause au lieu de se réinitialiser, l'animation reprend exactement là où elle s'était arrêtée.
Relancer en modifiant la propriété de clé
Une animation par images clés ne se joue qu'une seule fois lorsque sa classe est appliquée pour la première fois ; réappliquer la même classe ne la redémarre pas. L'astuce React la plus propre consiste à modifier la key de l'élément afin que React remonte un nouveau nœud et rejoue l'animation depuis le début.
Par exemple, key={count} sur une notification la remonte chaque fois que count est incrémenté.
Respecter la préférence de réduction des mouvements
Certains utilisateurs activent la réduction des mouvements dans leur OS pour leur confort ou leur accessibilité. Entourez les animations non essentielles de @media (prefers-reduced-motion: reduce) et désactivez-les ou raccourcissez-les dans ce contexte.
Respecter cette préférence rend votre interface plus inclusive et évite de provoquer de l'inconfort.
Déclencher au défilement avec IntersectionObserver
Pour animer des éléments lorsqu'ils entrent dans la zone d'affichage, utilisez un IntersectionObserver dans un useEffect. Lorsque l'entrée devient visible, vous modifiez l'état, ce qui ajoute la classe d'animation.
Cela produit des effets de révélation au défilement sans faire fonctionner de lourds écouteurs de défilement à chaque image.
Orchestrer avec le délai d'animation
animation-delay décale le début de chaque animation par images clés. En attribuant des délais croissants à une liste d'éléments, vous les faites s'animer en séquence pour obtenir une révélation chorégraphiée.
Vous pouvez calculer le délai de chaque élément dans React avec style={{ animationDelay: i * 80 + 'ms' }}.
Animations par images clés ou transitions
Utilisez les transitions pour de simples changements entre deux états déclenchés par une interaction, et les images clés lorsque vous avez besoin d'un mouvement en plusieurs étapes, d'une boucle ou d'une animation qui s'exécute indépendamment d'une bascule d'état.
Les deux sont entièrement gérés par CSS : React décide seulement quand les classes sont appliquées et le navigateur gère les images.
Vérification rapide
Évaluez votre compréhension du comportement des animations par images clés.
Récapitulatif
Vous avez appris à définir @keyframes, à les appliquer avec la notation abrégée animation, à contrôler le mode de remplissage et la direction, à mettre en pause et à relancer des animations, ainsi qu'à révéler des éléments au défilement avec IntersectionObserver.
Vous avez également vu comment respecter prefers-reduced-motion pour proposer des mouvements accessibles.
Questions Fréquemment Posées
La leçon « Animations CSS avec @keyframes dans React » est-elle gratuite ?
Oui — le texte complet de « Animations CSS avec @keyframes dans React » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours React Academy, passe à CoddyKit PRO. Le cours React Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Animations CSS avec @keyframes dans React » ?
Appliquez et supprimez dynamiquement des animations @keyframes selon l’état et les événements du composant. Tu pratiques React Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer React Academy ?
Aucune expérience préalable n'est requise. React Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Animations CSS avec @keyframes dans React » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon React Academy ?
Oui. Chaque leçon React Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Transitions CSS avec les changements d’état de React
- Animations CSS avec @keyframes dans React
- useLayoutEffect pour les mesures avant animation
- Animations d’entrée et de sortie sans bibliothèque