Ich habe nicht animiert Element als Standard. Es gibt auch einen Auslöser, mit dem ich die Animation & für dieses Element aktivieren kann. Die Animation selbst ist sehr einfach: Verschiebt das Element von links nach rechts und zurück.Wie kann CSS-Animation problemlos in den aktuellen Zustand zurückgesetzt werden?
Wenn ich die Animation stoppe, geht mein Element offensichtlich in die ursprüngliche Position zurück. Aber es geht plötzlich zurück, nicht glatt. Es ändert also nur seine Position von der, als ich die Animation auf die erste abstellte. Meine Frage ist: gibt es eine Möglichkeit, es reibungslos zu stoppen, also wenn ich die Animation ausschalte, geht es zurück zur Ausgangsposition, aber glatt/animierend.
Hier ist mein Element und Animation: 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); }
}
Leider sehen die aktuellen CSS-Spezifikationen dieses Verhalten nicht vor. Für dieses Problem gibt es einige Problemumgehungen (das Problem, dass nach dem Anhalten/Entfernen der Animation keine Rückkehr in den Grundzustand erfolgt), aber sie basieren alle auf JS. Würden Sie eine JS-basierte Lösung in Betracht ziehen? – Terry
möglich Duplikat von [CSS-Keyframe-Animation glatt stoppen] (http://stackoverflow.com/questions/29668238/smoothly-stop-css-keyframe-animation) – brenjt
Meinst du loop? –