作用:通過給元素新增animation屬性,可以賦予該元素動畫效果。
<!DOCTYPE html>
<html>
<head>
<style>
div{width:100px;height:100px;background:red;animation:my 5s;}
@keyframes my
{
0%{background:red;width:100px;}
100%{background:blue;width:200px;}
}
</style>
</head>
<body>
<div></div>
</body>
</html>
最常用的幾種屬性有以下幾種:
1、animation-name(動畫名稱)
animation-name屬性是必須存在的,因為animation-name的值預設是none,沒有動畫。
2、animation-duration(動畫執行一次所需時間)
animation-duration屬性也是必須存在的,因為animation-duration的值預設是0,沒有動畫。
3、animation-delay(動畫在開始前的延遲時間)
animation-delay的值可以是秒(s)或者是毫秒(ms),預設值是0,沒有延遲。
4、animation-timing-function(動畫以何種執行軌跡完成一個週期)
animation-timing-function的值是貝塞爾曲線,預設值是ease,表示動畫以低速開始,然後加速,最後在結束前變慢。 最常用的值有以下幾個:
(1)linear:表示動畫從頭到尾的速度都是相同的。
(2)ease-in:表示動畫以低速開始。
(3)ease-out:表示動畫以低速結束。
(4)ease-in-out:表示動畫以低速開始和結束。
如果沒有想用的值,也可以直接使用三次貝塞爾函式,使用網站是http://cubic-bezier.com,可直接除錯出自己想要的值;也可以在瀏覽器中直接除錯,現在瀏覽器除錯工具中都支援貝塞爾函式視覺化除錯。
5、animation-iteration-count(動畫播放次數)
animation-iteration-count屬性值有兩種:
(1)直接寫數字,自定義想要播放動畫的次數。
(2)infinite:設定動畫無線迴圈播放。
6、animation-fill-mode(定義元素動畫結束以後或者未開始的元素樣式)
預設值為none,標示,不會在動畫結束或者未開始時給元素 新增樣式
常用屬性值為:
(1)forwards:表示動畫結束後,元素直接接使用當前樣式。
(2)backwards:表示在動畫延遲時間元素使用關鍵幀中from的屬性值或者to屬性值(當animation-direction為reverse或者alternate-reverse時)
7、animation-direction(是否輪流反向播放動畫)
預設值是normal,動畫正常播放。如果動畫只播放一次,則該屬性無效。
常用的屬性值為:
(1)reverse:表示動畫反向播放。
(2)alternate:表示動畫在奇數次播放時為正向播放,為偶數次播放時為反向播放。
(3)alternate-reverse: :表示動畫在奇數次播放時為反向播放,為偶數次播放時為正向播放。
animation屬性在書寫通常合併在一起,除非需要單獨設定的屬性值,animation屬性的簡寫形式為:animation:code 2s 2s linear infinite alternate forwards;