在css3中,我們可以通過@keyframes創建關鍵幀動畫效果。我們需要將@keyframes綁定到選擇器中,否則不會有效果出現。同時,我們還需定義動畫時長和動畫名稱
語法
CSS Code復制內容到剪貼板
@keyframes animationname {keyframes-selector {css-styles;}}
| 值 | 描述 |
|---|---|
| animationname | 必需。定義動畫的名稱。 |
| keyframes-selector | 必需。動畫時長的百分比。 |
在css3中,我們以百分比來規定改變發生的時間,或者通過關鍵詞 "from" 和 "to",等價于 0% 和 100%。其中,0% 是動畫的開始時間,100% 動畫的結束時間。
Keyframe選擇器
讓我們在@keyframes中添加一些動畫規則:
CSS Code復制內容到剪貼板
@keyframes sunrise {
0% {
bottombottom: 0;
left: 340px;
background: #f00;
}
33% {
bottombottom: 340px;
left: 340px;
background: #ffd630;
}
66% {
bottombottom: 340px;
left: 40px;
background: #ffd630;
}
100% {
bottombottom: 0;
left: 40px;
background: #f00;
}
}
通過添加這些新的動畫規則,我們引入了keyframe選擇器。在上述示例代碼中,0%, 33%, 66%, 以及100%即為keyframe選擇器。其中,0%和100%可以使用”from”和”to”來代替。
示例中的四套動畫規則表達的是這個動畫元素的四種狀態(四個關鍵幀),以及處于這四種狀態中時的樣式。那些沒有定義的狀態(比如,從34%到65%)則組成了這些已定義的狀態間的過渡狀態。
盡管規范還在修改中,有一些規則用戶還是應該遵守。例如,keyframes的書寫順序并不重要,它們會按百分數的升序播放。因此,如果你把”to”關鍵幀放在”from”關鍵幀之前,動畫的播放并不會有改變。除此以外,如果你沒有指定to或者from或者對應的百分數,瀏覽器會自動加上。所以,@keyframes的語法并不符合一般CSS語法的層疊覆蓋規則。
新聞熱點
疑難解答