CodeGym /Cours /Frontend SELF FR /Fondamentaux de l'animation

Fondamentaux de l'animation

Frontend SELF FR
Niveau 24 , Leçon 0
Disponible

6.1 La règle @keyframes

Les animations CSS te permettent de créer des effets visuels complexes et fluides avec un minimum d'effort. L'outil principal pour créer des animations en CSS est la règle @keyframes, qui définit les images clés de l'animation et les changements de styles qui doivent se produire à chaque image.

La règle @keyframes est utilisée pour créer une animation en définissant les changements de propriétés CSS à différentes étapes de l'animation. Les images clés définissent quels styles seront appliqués à certains moments pendant l'animation.

Syntaxe 1 :

    
      @keyframes animation-name {
        from {
          /* styles de départ */
        }

        to {
           /* styles finaux */
        }
      }
    
  

Syntaxe 2 :

    
      @keyframes animation-name {
        0% {
          /* styles de départ */
        }

        100% {
           /* styles finaux */
        }
      }
    
  

Où :

  • from correspond à 0% du temps de l'animation
  • to correspond à 100% du temps de l'animation

Exemple : Changement progressif de la couleur d'arrière-plan

HTML
    
      <!DOCTYPE html>
      <html lang="en">
        <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>Simple Animation Example</title>
          <style>
            @keyframes changeColor {
              from {
                background-color: lightblue;
              }

              to {
                background-color: lightcoral;
              }
            }

            .animated-box {
              width: 200px;
              height: 200px;
              background-color: lightblue;
              animation: changeColor 3s infinite;
            }
          </style>
        </head>
        <body>
          <div class="animated-box">Hover over me!</div>
        </body>
      </html>
    
  

Explication :

  • la règle @keyframes changeColor définit une animation qui change la couleur de fond d'un élément de lightblue à lightcoral
  • la propriété animation sur l'élément .animated-box indique que l'animation changeColor doit durer 3 secondes et se répéter à l'infini

6.2 Plusieurs images clés

Tu peux utiliser plus de deux images clés pour créer des animations plus complexes en définissant des styles pour les états intermédiaires.

Exemple : Mouvement diagonal avec changement de couleur

HTML
    
      <!DOCTYPE html>
      <html lang="en">
        <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>Multiple Keyframes Example</title>
          <style>
            @keyframes moveAndChangeColor {
              0% {
                background-color: lightblue;
                transform: translate(0, 0);
              }

              50% {
                background-color: lightgreen;
                transform: translate(100px, 100px);
              }

              100% {
                background-color: lightcoral;
                transform: translate(200px, 0);
              }
            }

            .animated-box {
              width: 200px;
              height: 200px;
              background-color: lightblue;
              animation: moveAndChangeColor 5s infinite;
            }
          </style>
        </head>
        <body>
          <div class="animated-box">Watch me move!</div>
        </body>
      </html>
    
  

Explication :

La règle @keyframes moveAndChangeColor définit une animation qui change la couleur de fond et la position de l'élément en trois étapes.

  • À 0% du temps de l'animation, l'élément a une couleur bleu clair et est à la position de départ
  • À 50% du temps de l'animation, l'élément a une couleur vert clair et se déplace de 100 pixels à droite et en bas
  • À 100% du temps de l'animation, l'élément a une couleur corail clair et se déplace de 200 pixels à droite

6.3 Exemples d'animations simples

Exemple 1 : Pulsation

Créer un effet de pulsation où un élément augmente et diminue en douceur.

HTML
    
      <!DOCTYPE html>
      <html lang="en">
        <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>Pulsing Effect</title>
          <style>
            @keyframes pulse {
              0% {
                transform: scale(1);
              }

              50% {
                transform: scale(1.2);
              }

              100% {
                transform: scale(1);
              }
            }

            .pulse-box {
              width: 150px;
              height: 150px;
              background-color: lightpink;
              animation: pulse 2s infinite;
            }
          </style>
        </head>
        <body>
          <div class="pulse-box">Pulsing</div>
        </body>
      </html>
    
  

Explication :

  • la règle @keyframes pulse définit une animation qui augmente la taille de l'élément jusqu'à 120% puis le ramène à sa taille d'origine
  • la propriété animation sur l'élément .pulse-box indique que l'animation pulse doit durer 2 secondes et se répéter à l'infini

Exemple 2 : Rotation

Créer un effet de rotation continue de l'élément :

HTML
    
      <!DOCTYPE html>
      <html lang="en">
        <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>Rotating Effect</title>
          <style>
            @keyframes rotate {
              from {
                transform: rotate(0deg);
              }

              to {
                transform: rotate(360deg);
              }
            }

            .rotate-box {
              width: 100px;
              height: 100px;
              background-color: lightseagreen;
              animation: rotate 3s infinite linear;
            }
          </style>
        </head>
        <body>
          <div class="rotate-box">Rotating</div>
        </body>
      </html>
    
  

Explication :

  • la règle @keyframes rotate définit une animation qui tourne l'élément de 0 à 360 degrés
  • la propriété animation sur l'élément .rotate-box indique que l'animation rotate doit durer 3 secondes, se répéter à l'infini et se dérouler à vitesse constante (linear)
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION