Tengo una animación CSS3 de 4 partes que se reproduce al hacer clic, pero la última parte de la animación está destinada a sacarla de la pantalla.
Sin embargo, siempre vuelve a su estado original una vez que ha jugado. Alguien sabe cómo puedo detenerlo en su último marco CSS (100%) , o cómo deshacerse de todo el div en el que se encuentra una vez que se ha jugado.
@keyframes colorchange {
0% { transform: scale(1.0) rotate(0deg); }
50% { transform: rotate(340deg) translate(-300px,0px) }
100% { transform: scale(0.5) rotate(5deg) translate(1140px,-137px); }
}
css
css-animations
usuario531192
fuente
fuente
Respuestas:
Estas buscando:
Más información sobre MDN y la lista de soporte del navegador en canIuse .
fuente
-webkit-animation-fill-mode: forwards;
100% {}
oto {}
set, por lo que incluso conanimation-fill-mode: forwards;
mi animación todavía me dejaría0%
. (Estaba usando algunos bucles @for para crear mis animaciones y olvidé agregar manualmente unfrom{}
yto{}
);Si desea agregar este comportamiento a una
animation
definición de propiedad abreviada , el orden de las subpropiedades es el siguienteanimation-name
- predeterminadonone
animation-duration
- predeterminado0s
animation-timing-function
- predeterminadoease
animation-delay
- predeterminado0s
animation-iteration-count
- predeterminado1
animation-direction
- predeterminadonormal
animation-fill-mode
- necesitas configurar esto enforwards
animation-play-state
- predeterminadorunning
Por lo tanto, en el caso más común, el resultado será algo como esto
Vea la documentación de MDN aquí
fuente
Soporte de navegador
Uso:-
fuente
La mejor manera parece poner el estado final en la parte principal de css. Al igual que aquí, pongo ancho
220px
, para que finalmente se convierta220px
. Pero empezando a0px;
fuente
No es su problema que esté configurando el webkitAnimationName de nuevo a nada, por lo que está restableciendo el CSS para su objeto a su estado predeterminado. ¿No se quedará donde terminó si simplemente elimina la función setTimeout que restablece el estado?
fuente
Acabo de publicar una respuesta similar, y probablemente quieras echar un vistazo a:
http://www.w3.org/TR/css3-animations/#animation-events-
Puedes descubrir aspectos de una animación, como iniciar y detener, y luego, una vez que digas que el evento 'detener' se ha disparado, puedes hacer lo que quieras con el dom. Probé esto hace algún tiempo, y puede funcionar, pero supongo que por el momento estarás restringido a webkit (pero probablemente ya lo hayas aceptado). Por cierto, desde que publiqué el mismo enlace para 2 respuestas, ofrecería este consejo general: echa un vistazo al W3C: prácticamente escriben las reglas y describen los estándares. Además, las páginas de desarrollo de webkit son bastante clave.
fuente
Nadie realmente lo trajo así, la forma en que se hizo funcionar es la animación-reproducción-estado en pausa.
fuente
Hoy aprendí que hay un límite que desea usar para el modo de relleno. Esto es de un desarrollador de Apple. El rumor es * alrededor de * seis, pero no es seguro. Alternativamente, puede establecer el estado inicial de su clase a cómo desea que termine la animación, luego * inicializarla * desde / 0%.
fuente