CodeGym /Curso de Java /Frontend SELF ES /Fundamentos de la animación

Fundamentos de la animación

Frontend SELF ES
Nivel 24 , Lección 0
Disponible

6.1 Regla @keyframes

Las animaciones CSS permiten crear efectos visuales complejos y suaves con un mínimo esfuerzo. La herramienta principal para crear animaciones en CSS es la regla @keyframes, que define los fotogramas clave de la animación y los cambios de estilos que deben ocurrir en cada fotograma.

La regla @keyframes se utiliza para crear animaciones, definiendo cambios en propiedades CSS en diferentes etapas de la ejecución de la animación. Los fotogramas clave determinan qué estilos se aplicarán en momentos determinados durante el proceso de animación.

Sintaxis 1:

    
      @keyframes animation-name {
        from {
          /* estilos iniciales */
        }

        to {
           /* estilos finales */
        }
      }
    
  

Sintaxis 2:

    
      @keyframes animation-name {
        0% {
          /* estilos iniciales */
        }

        100% {
           /* estilos finales */
        }
      }
    
  

Donde:

  • from corresponde al 0% del tiempo de la animación
  • to corresponde al 100% del tiempo de la animación

Ejemplo: Cambio suave del color de fondo

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">¡Pasa el ratón por encima!</div>
        </body>
      </html>
    
  

Explicación:

  • la regla @keyframes changeColor define una animación que cambia el color de fondo del elemento de lightblue a lightcoral
  • la propiedad animation en el elemento .animated-box indica que la animación changeColor debe durar 3 segundos y repetirse infinitamente

6.2 Varios fotogramas clave

Puedes usar más de dos fotogramas clave para crear animaciones más complejas, definiendo estilos para estados intermedios.

Ejemplo: Movimiento diagonal con cambio de color

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">¡Mírame mover!</div>
        </body>
      </html>
    
  

Explicación:

La regla @keyframes moveAndChangeColor define una animación que cambia el color de fondo y la posición del elemento en tres etapas.

  • En el 0% del tiempo de la animación, el elemento tiene un color azul claro y está en su posición inicial
  • En el 50% del tiempo de la animación, el elemento tiene un color verde claro y se mueve 100 píxeles a la derecha y hacia abajo
  • En el 100% del tiempo de la animación, el elemento tiene un color coral claro y se mueve 200 píxeles a la derecha

6.3 Ejemplos de animaciones simples

Ejemplo 1: Pulsación

Creación de un efecto de pulsación, donde el elemento aumenta y disminuye suavemente.

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">Pulsando</div>
        </body>
      </html>
    
  

Explicación:

  • la regla @keyframes pulse define una animación que aumenta el elemento hasta el 120% y lo regresa a su tamaño original
  • la propiedad animation en el elemento .pulse-box indica que la animación pulse debe durar 2 segundos y repetirse infinitamente

Ejemplo 2: Rotación

Creación de un efecto de rotación continua del elemento:

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">Rotando</div>
        </body>
      </html>
    
  

Explicación:

  • la regla @keyframes rotate define una animación que rota el elemento de 0 a 360 grados
  • la propiedad animation en el elemento .rotate-box indica que la animación rotate debe durar 3 segundos, repetirse infinitamente y ocurrir a una velocidad constante (linear)
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION