動畫(CSS3) animation
動畫是CSS3中具有顛覆性的特徵之一,可通過設定多個節點來精確控制一個或一組動畫,常用來實現複雜的動畫效果。
動畫序列
-
0%是動畫的開始,100%是動畫的完成。這樣的規則就是動畫序列。
-
在@keyframes中規定某項css樣式,就能建立由當前樣式逐漸改變為新樣式的動畫效果
-
動畫是使元素從一種樣式逐漸變化為另一種樣式的效果,可以改變任意多的樣式任意多的次數。
-
動畫基本使用
-
先定義動畫
-
動畫簡寫格式:
animation:動畫名稱 動畫時間 運動曲線 何時開始 播放次數 是否反方向 動畫起始或結束方向;
屬性 |
描述 |
@keyframes |
規定動畫。 |
animation |
所有動畫屬性的簡寫屬性,除了animation-play-state屬性。 |
animation-name |
規定@keyframes動畫的名稱。(必須的) |
animation-duration |
規定動畫完成一個週期所花費的秒或毫秒,預設是0。(必須的) |
animation-timing-function |
規定動畫的速度曲線,預設是“ease”。 |
animation-delay |
規定動畫何時開始,預設是0。 |
animation-iteration-count |
規定動畫被播放的次數,預設是1,還有infinite |
animation-direction |
規定動畫是否在下一週期逆向播放,預設是“normal“,alternate逆播放 |
animation-play-state |
規定動畫是否正在執行或暫停。預設是"running",還有"paused"。 |
animation-fill-mode |
規定動畫結束後狀態,保持forwards回到起始backwards |
-
-
暫停動畫:animation-play-state: puased; 經常和滑鼠經過等其他配合使用
-
想要動畫走回來 ,而不是直接跳回來:animation-direction : alternate
-
速度曲線細節
animation-timing-function:規定動畫的速度曲線,預設是“ease”
值 |
描述 |
linear |
動畫從頭到尾的速度是相同的。勻速 |
ease |
預設。動畫以低速開始,然後加快,在結束前變慢。 |
ease-in |
動畫以低速開始。 |
ease-out |
動畫以低速結束。 |
ease-in-out |
動畫以低速開始和結束。 |
steps() |
指定了時間函式中的間隔數量(步長) |
關於幾個值,除了名字,動畫時間,延時有嚴格順序要求,其它隨意
@keyframes 動畫名稱 {
from{ 開始位置 } 0%
to{ 結束 } 100%
}
animation-iteration-count:infinite; 無限迴圈播放
animation-play-state:paused; 暫停動畫
小熊案例:
div{ position:absolute; width:200px; height:100px; background:url(images/bear.png)no-repeat; /*animation:動畫名稱動畫時間運動曲線何時開始播放次數是否反方向;*/ /*元素可新增多個動畫,用逗號分隔*/ /*steps(步數),動畫分幾步完成*/ animation:run0.5ssteps(8)infinite,move3slinearforwards; }@keyframesrun{ 0%{ background-position:00; } 100%{ background-position:-1600px0; } } @keyframesmove{ 0%{ left:0; } 100%{ left:50%; transform:translateX(-50%); } }