Css3動畫-@keyframes與animation


一、@keyframe

定義和用法

@keyframes是用來創建幀動畫的,我們通過這個屬性可以用純css來實現一些動畫效果。

一般格式是:

@keyframes 動畫名稱{

    0%{

  動畫開始時的樣式

    }

    100%{

  動畫結束時的樣式

    }

}

以百分比來規定改變發生的時間,或者通過關鍵詞 "from" 和 "to",等價於 0% 和 100%。0% 是動畫的開始時間,100% 動畫的結束時間,瀏覽器可以自動補間,中間也可以設置多個百分比,實現更加多變的動畫效果。

 

由於@keyframes 屬性是css3新屬性,許多瀏覽器都要加兼容性前綴

  Firefox:-moz-

  Opera :-o-

  Safari 和 Chrome:-webkit-

為了獲得最佳的瀏覽器支持,我們始終定義 0%  100% 選擇器。

二、animation 

定義和用法

animation屬性是寫在要實現動畫的元素的選擇器中的,實現元素的動畫綁定。animation 屬性是一個簡寫屬性,用於設置六個動畫屬性:

animation-name   :   規定需要綁定到選擇器的 keyframe 名稱。

animation-duration    :    規定完成動畫所花費的時間,以秒或毫秒計。

animation-timing-function    :    規定動畫的速度曲線。

animation-delay    :    規定在動畫開始之前的延遲。

animation-iteration-count    :    規定動畫應該播放的次數。

animation-direction    :    規定是否應該輪流反向播放動畫。

語法

animation: name duration timing-function delay iteration-count direction

1.animation-timing-function 使用名為三次貝塞爾(Cubic Bezier)函數的數學函數來生成速度曲線。我們能夠在該函數中使用自己的值,也可以使用預定義的值:

    linear:動畫從頭到尾的速度是相同的。

    ease:默認。動畫以低速開始,然后加快,在結束前變慢。

    ease-in:動畫以低速開始。

    ease-out:動畫以低速結束。

    ease-in-out:動畫以低速開始和結束。

    cubic-bezier(n,n,n,n):在 cubic-bezier 函數中自己的值。可能的值是從 0 到 1 的數值。

2.animation-iteration-count: n | infinite;

     n:定義動畫播放次數的數值。

    infinite:規定動畫應該無限次播放。

3.animation-direction:normal | alternate;

    normal:默認值,動畫正常播放。

    alternate:動畫輪流反向播放(動畫在奇數次數正常播放,在偶數次數向后播放)。

 

Internet Explorer 10、Firefox 以及 Opera 支持 animation 屬性。

Safari 和 Chrome 支持替代的 -webkit-animation 屬性。


三、例子
 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM