Hormigas andadoras
Podemos utilizar el atributo stroke-dashoffset para crear una animación de tipo hormigas andadoras ( marching ants ). Básicamente tenemos que animar el valor de stroke-dashoffset como en los siguientes ejemplos.
El SVG
El SVG para los dos siguientes ejemplos es lo mismo: un rectángulo dibujado con polygon, sin relleno (fill:none), con un borde de color negro (stroke:#000) de 3 pixeles (stroke-width:3). El valor del atributo stroke-dasharray: 30,15. Esto quiere decir que el patrón de líneas discontinuas utilizado esta formado por fragmentos de línea de 30, seguidos por espacios de 15. O sea el tamaño del fragmento a repetir es de 45.
<svg width="250" height="250" viewBox="0 0 250 250"> <polygon points="50,50 200,50 200,200 50 200" style="fill:none; stroke:#000; stroke-width:3; stroke-dasharray: 30,15; ></polygon> </svg>
Hormigas andadoras con CSS
En el siguiente ejemplo utilizo la librería -prefix-free así que no necesito utilizar prefijos.
En el CSS primero designamos el nombre de la animación: hormigasAndadoras, la duración: .5s, la función temporizador: linear, y el número de iteraciones: infinite.
polygon{
animation-name: hormigasAndadoras;
animation-duration: .5s;
animation-timing-function: linear;
animation-iteration-count: infinite;
}
Que también podemos escribir así:
polygon{
animation: hormigasAndadoras .5s linear infinite;
}
A continuación creamos las fotogramas para la animación hormigasAndadoras: prácticamente tenemos que animar el valor de stroke-dashoffset de 0 a 45 (45 es el tamaño del fragmento a repetir ).
@keyframes hormigasAndadoras {
0% { stroke-dashoffset: 0;}
100% { stroke-dashoffset: 45;}
}
Que también podemos escribir así:
@keyframes hormigasAndadoras {
to{ stroke-dashoffset: 45;}
}
Y ya está.
See the Pen hormigas andadoras CSS by Gabi (@enxaneta) on CodePen.
Hormigas andadoras con javascript
En JavaScript es todavía más fácil. Podemos utilizar el método requestAnimationFrame para animar el valor del atributo stroke-dashoffset de esta manera:
Tenemos una variable llamada dashoffset cuyo valor es 0. Con cada fotograma el valor de dashoffset crece ( dashoffset += 2; ). Al final hacemos al atributo stroked-dashoffset del polygon igual al valor de la variable dashoffset.
polygon.style.strokeDashoffset = dashoffset;
See the Pen hormigas andadoras JS by Gabi (@enxaneta) on CodePen.