我有沒有動畫元素作爲默認值。還有一個觸發器可以讓我在該元素上關閉動畫&。動畫本身非常簡單:將元素從左向右移動回來。如何平滑地將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嗎? –