【发布时间】:2015-07-20 14:32:10
【问题描述】:
我有 not animated 元素作为默认值。还有一个触发器可以让我打开和关闭该元素上的动画。动画本身非常简单:将元素从左向右移动。
当我停止动画时,我的元素显然会回到初始位置。但它突然回来了,并不顺利。因此,它只是将其位置从我关闭动画时的位置更改为初始位置。我的问题是:有没有办法让它平滑地停止,所以当我关闭动画时,它会回到初始位置但平滑/动画。
这是我的元素和动画: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 的解决方案吗?
-
这个问题解决了吗?