這不是一個可以通過使用ease-in
解決的問題。讓CSS3旋轉開始緩慢然後結束緩慢?
如果我有一個元素,我想在CSS3中旋轉一段時間,但是開始慢,結束速度慢,我該怎麼做?
CSS
@-webkit-keyframes spin {
0% { -webkit-transform: rotate(0deg); }
100% { -webkit-transform: rotate(360deg); }
}
div{
background-image:-webkit-radial-gradient(center, ellipse cover, rgba(0,0,0,1) 0%,rgba(51,51,51,1) 20%,rgba(0,0,0,1) 20%,rgba(51,51,51,1) 40%,rgba(0,0,0,1) 40%,rgba(51,51,51,1) 60%,rgba(0,0,0,1) 60%,rgba(51,51,51,1) 80%,rgba(0,0,0,1) 80%,rgba(51,51,51,1) 100%);
width: 200px;
height: 200px;
-webkit-animation-name: spin;
-webkit-animation-duration: 2s;
-webkit-animation-iteration-count: 60.5;
-webkit-animation-timing-function: ease-in;
}
HTML
<div></div>
我似乎無法弄清楚如何做到這一點。我的動畫總共運行了121秒,因爲完成一次旋轉需要2秒,因此60.5次旋轉總共需要121秒(如果我的數學不正確,請告訴我)。這工作正常,除了我希望div開始慢速旋轉,然後完成所有59次旋轉,然後結束最後一個緩慢。
我想爲此使用純CSS,如果可能的話。
如果你不介意加入_a little_ JavaScript中,你可以寫3個動畫,聽'animationend'事件改變關鍵幀名字... – Passerby 2012-08-15 03:12:56
反正有這樣做沒有JS? :D – Charlie 2012-08-15 03:16:35
如果它真的必須是純粹的CSS ......將3個'div'包裝在一起並使用3個動畫,其中一個用於大多數'div'旋轉第一輪,一個延遲幾秒並旋轉「in most 「div」進行59輪,一次延遲~100秒,並在最後一輪旋轉中間「div」。你當然需要做數學運算:) – Passerby 2012-08-15 03:49:03