我有没有动画元素作为默认值。还有一个触发器可以让我在该元素上关闭动画&。动画本身非常简单:将元素从左向右移动回来。如何平滑地将CSS动画恢复到当前状态?
当我停止动画时,我的元素显然会回到初始位置。但它突然倒退,并不顺利。所以当我关闭动画到最初动画时,它只是改变了它的位置。我的问题是:是否有一种方法可以使其顺利停止,因此,当我关闭动画时,它会回到初始位置,但流畅/动画。
这里是我的元素和动画: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); }
}
不幸的是,当前的CSS规范没有对此行为做出规定。这个问题有几个解决方法(在停止/删除动画之后没有转换回“基态”),但它们都是基于JS的。你会考虑一个基于JS的解决方案吗? – Terry
[Smoothly stop CSS keyframe animation]可能的重复(http://stackoverflow.com/questions/29668238/smoothly-stop-css-keyframe-animation) – brenjt
你是指loop吗? –