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
animationdefinición de propiedad abreviada , el orden de las subpropiedades es el siguienteanimation-name- predeterminadononeanimation-duration- predeterminado0sanimation-timing-function- predeterminadoeaseanimation-delay- predeterminado0sanimation-iteration-count- predeterminado1animation-direction- predeterminadonormalanimation-fill-mode- necesitas configurar esto enforwardsanimation-play-state- predeterminadorunningPor 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