Io ho non animato elemento come predefinito. C'è anche un trigger che mi consente di attivare l'animazione & su quell'elemento. L'animazione stessa è molto semplice: sposta l'elemento da sinistra a destra e viceversa.Come ripristinare gradualmente l'animazione CSS al suo stato attuale?
Quando interrompo l'animazione, il mio elemento torna ovviamente alla posizione iniziale. Ma torna improvvisamente, non senza intoppi. Quindi cambia solo la sua posizione da quella in cui ho disattivato l'animazione in quella iniziale. La mia domanda è: c'è un modo per fermarlo senza problemi, così quando spengo l'animazione ritorna alla posizione iniziale ma senza problemi/animando.
Ecco il mio elemento e animazione: http://jsfiddle.net/2Lwftq6r/
HTML:
<input type="checkbox" id="anim">
<label for="anim">Start/stop animation</label>
<div></div>
CSS:
div {
margin-top: 50px;
width: 50px; height: 10px;
background: #000;
transform: translateX(0);
}
#anim:checked ~ div {
-webkit-animation: dance 2s infinite ease-in-out;
-moz-animation: dance 2s infinite ease-in-out;
}
@-webkit-keyframes dance {
0%, 100% { -webkit-transform: translateX(0); }
50% { -webkit-transform: translateX(300px); }
}
@-moz-keyframes dance {
0%, 100% { -moz-transform: translateX(0); }
50% { -moz-transform: translateX(300px); }
}
Sfortunatamente, le attuali specifiche CSS non prevedono questo comportamento. Ci sono alcune soluzioni alternative per questo problema (la mancanza di passaggio a "stato fondamentale" dopo l'arresto/rimozione dell'animazione), ma sono tutte basate su JS. Prenderesti in considerazione una soluzione basata su JS? – Terry
possibile duplicato di [Smoothly stop CSS keyframe animation] (http://stackoverflow.com/questions/29668238/smoothly-stop-css-keyframe-animation) – brenjt
Intendi ciclo? –