Saltar al contenido

29-Animaciones SVG

Podemos crear animaciones de elementos SVG en HTML5, las animaciones se ejecutan en un tiempo y pueden cambiar alguna propiedad del elemento en cuestión.

Etiqueta <animate>

La etiqueta <animate> contiene la animación propiamente dicha, mediante atributos podemos establecer las características de la animación. Por otro lado la etiqueta <animate> irá dentro del elemento SVG que deseamos animar.

Por ejemplo, si deseamos poner animación a un elemento SVG de rectángulo, entonces la etiqueta <animate> irá de la siguiente manera:

<svg>
<rect>
   <animate /> 
</rect>
</svg>

Atributos para <animate>

  • atributeName.- sirve para establecer el atributo o característica del elemento, que queremos animar. puede ser la posición en X o Y, o quiza el color, etc.
  • from.- permite indicar el punto, estado o valor inicial la animación.
  • to.- nos permite indicar el valor o estado final de la animación.
  • fill.- nos permite establecer lo que ocurre después de terminar la animación; el valor remove, remueve la animación, y freeze mantiene el estado final.
  • repeatCount.- para indicar la cantidad de veces que se repite la animación, el valor puede ser un numero entero o si prefieres puedes poner el valor undefined para que sea indefinido.

Ejemplos de animación SVG

Ejemplo 1.- Nuestro primer ejemplo consiste en hacer que un circulo SVG cambie de posición en dirección Horizontal (X) desde el extremo 0 hasta 400px en sentido horizontal.

<svg width="1000" height="250">
   <circle cx="120" cy="150" r="80" fill="red">
   <animate attributeName="cx" from="0" to="300"
      dur="4s" fill="freeze" repeatCount="3"/> 
  </circle>
</svg>

Nuestra animación indica de que el atributo a animar o modificar es el CX o el centro en X, desde la posición 0 hasta la posición 300 en X, la duración es de 4 segundos y debe repetirse 3 veces y mediante la propiedad fill dentro de estamos indicando que al final de todo, se quede en posición final de la animación.

Ejemplo 2.- en este ejemplo haremos que el color de relleno de un rectángulo cambie desde un rojo (from=»red») a un azul, en un tiempo de 5 segundos (dur=»5s») y que se repita 4 veces (repeatCount=»4″).

<svg width="400" height="250">
<rect width="150" height="150" fill="green">
   <animate attributeName="fill" from="red" to="blue"
      dur="5s" fill="remove" repeatCount="4"/> 
</rect>
</svg>

En este caso removeremos la animación (fill=»remove») cuando haya terminado, de tal manera que al final, nuestro rectángulo quede con su color original, en este caso el verde (green).

No te olvides de compartir en...

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *