Estoy ejecutando una animación en algunos elementos configurados opacity: 0;en CSS. La clase de animación se aplica en Click, y, usando fotogramas clave, cambia la opacidad de 0a 1(entre otras cosas).
Desafortunadamente, cuando termina la animación, los elementos vuelven a opacity: 0(tanto en Firefox como en Chrome). Mi pensamiento natural sería que los elementos animados mantienen el estado final, anulando sus propiedades originales. ¿No es esto cierto? Y si no, ¿cómo puedo obtener el elemento para hacerlo?
El código (versiones prefijadas no incluidas):
@keyframes bubble {
0% { transform:scale(0.5); opacity:0.0; }
50% { transform:scale(1.2); opacity:0.5; }
100% { transform:scale(1.0); opacity:1.0; }
}
css
css-animations
Dan
fuente
fuente

Respuestas:
Intenta agregar
animation-fill-mode: forwards;. Por ejemplo así:fuente
forwardsvalor de laanimation-fill-modepropiedad se asegura de que el elemento contenga el último estado de fotograma clave de la animación una vez que finaliza la animación. por ejemplo, si su animación cambiawidthde 0 a 100 px, esta propiedad se asegura de que el elemento permanezca 100 px de ancho después de que finalice la animación.100% / topunto, de lo@keyframecontrario no funcionará.Si está utilizando más atributos de animación, la abreviatura es:
Esto da:
2sduraciónlinearfunción de temporización0.5sretrasar1recuento de iteraciones (puede ser infinito)normaldirecciónforwardsmodo de relleno (establecido hacia atrás si desea tener compatibilidad para usar la posición final como estado final)fuente
SI NO UTILIZA LA VERSIÓN DE MANO CORTA: Asegúrate de que
animation-fill-mode: forwardsesté DESPUÉS de la declaración de animación o no funcionará ...vs
fuente
Utilice el modo de relleno de animación: hacia adelante;
El elemento retendrá los valores de estilo establecidos por el último fotograma clave (depende de la dirección de animación y del recuento de iteraciones de animación).
Nota: La regla @keyframes no es compatible con Internet Explorer 9 y versiones anteriores.
Ejemplo de trabajo
fuente