Animando el viewBox en SVG
Archivado en: SMIL SVG
Hace unos meses vimos el significado del atributo viewBox en SVG, en esta ocasión vamos a animarlo a través de la etiqueta animate
.
Lo primero es crear un SVG que nos sirva de ejemplo.
1
2
3
4
5
6
7
8
9
<svg width="1266" height="600" viewBox="0 0 1266 600">
<rect x="200" y="125" width="100" height="100" fill="crimson"/>
<rect x="600" y="125" width="100" height="100" fill="crimson"/>
<text font-size="2px" font-family="Arial" x="200" y="175">Hola que pasa que tal</text>
</svg>
Tenemos dos cuadrados de 100px con el mismo color, uno situado a 200 y otro a 600. También tenemos un texto con una fuente y un tamaño de 2px, este tamaño hace que el texto en estos momentos sea prácticamente ilegible.
Antes de seguir vamos a recordar los cuatro valores que tiene el viewBox
, los dos primeros corresponden a las coordenadas x
e y
, y los dos últimos al width
y height
.
Ahora vamos a animar el viewBox para conseguir un zoom que nos permita ver el texto a la perfección.
1
2
3
4
5
6
7
8
<animate attributeName="viewBox"
begin="0s"
dur="5s"
values="0 0 1265 600;
200 172 5 5;
230 172 5 5;
0 0 1265 600"
fill="freeze"/>
En primer valor corresponde al que tiene el propio documento 0 0 1265 600
, en el segundo le decimos que la coordenada x
comience en 200 y que la y
comience en 172, además le decimos que el width
y el height
van a reducir su tamaño a 5px, con esto vamos a conseguir un efecto de zoom, en el siguiente valor solo vamos a cambiar la coordenada x
para que cree un efecto de desplazamiento a lo largo de 30 pixeles y así podemos leer toda la frase, con el último valor le decimos que todo vuelva a su sitio con 0 0 1265 600
.
En el ejemplo la animación se repite cinco veces para que no tengáis que recargar la página.
Por último comentar que la animación no va muy fluida en Firefox y se cuelga durante unos segundos, en el ejemplo al pasar de 230 172 5 5
0 0 1265 600
la animación se congela y ejecuta un movimiento bastante brusco.
A continuación os dejo otro par de ejemplos en los que también animo el viewBox y que he publicado en CodePen.
SCALABLE, un libro sobre SVGA lo largo de 15 capítulos, 120 páginas y más de 70 ejemplos vamos a ver todo lo que podemos hacer con SVG.
Tu pones el precio, disponible desde 0$ para descargar desde LeanPub(PDF, ePUB y MOBI).