Sto lavorando con il banner HTML5 con molta animazione CSS3. Per creare un'animazione di fotogrammi chiave riutilizzabile, sto utilizzando più animazioni su un singolo elemento. Funziona perfettamente tranne il safari.Animazioni di fotogrammi chiave multipli che non funzionano in safari
CSS:
.text1 {
-webkit-animation: fadeOutRight 1s 3s forwards;
animation: fadeOutRight 1s 3s forwards;
}
.text2 {
-webkit-animation: fadeInLeft 1s 4s both, fadeOutRight 1s 7s forwards;
animation: fadeInLeft 1s 4s both, fadeOutRight 1s 7s forwards;
}
.text3 {
-webkit-animation: fadeInLeft 1s 8s both;
animation: fadeInLeft 1s 8s both;
}
/* fadeInLeft */
@-webkit-keyframes fadeInLeft {
0% { -webkit-transform: translateX(-100px); opacity: 0; }
100% { -webkit-transform: translateX(0px); opacity: 1; }
}
@keyframes fadeInLeft {
0% { transform: translateX(-100px); opacity: 0; }
100% { transform: translateX(0px); opacity: 1; }
}
/* fadeOutRight */
@-webkit-keyframes fadeOutRight {
0% { -webkit-transform: translateX(0px); opacity: 1; }
100% { -webkit-transform: translateX(100px); opacity: 0; }
}
@keyframes fadeOutRight {
0% { transform: translateX(0px); opacity: 1; }
100% { transform: translateX(100px); opacity: 0; }
}
soluzioni praticabili:
- Avvolgere l'elemento con un altro/altro elemento & aggiungere singola animazione ad ogni elemento. Questa soluzione richiede uno stile extra per l'elemento wrapper.
- Unisci più animazioni in un'unica & questa soluzione aumenta la complessità dello
keyframes rule
e non è facilmente gestibile per animazioni complesse. - In base alla risposta accettata di un altro stackOverflow post -
You cannot animate same attribute more than once, on a same element, the last one will overwrite other
. Nel mio caso è vero solo per il safari & la prima animazione è in esecuzione solo con il secondo . Se non anima la stessa proprietà su più animazioni , allora va bene anche per safari (jsfiddle). Questo non è adatto a me perché avrò bisogno di animare la stessa proprietà in animazioni multiple .
Nota:
Anche se sto usando animazione multipla su uno stesso elemento ma non sto animando allo stesso tempo, non v'è ritardo tra ogni animazione.
Domanda:
E 'possibile utilizzare più l'animazione CSS3 sullo stesso elemento indipendentemente animare immobile?