css3中的animation屬性

藍色眼淚1發表於2018-04-02

作用:通過給元素新增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;

 

相關文章