CSS 過渡動畫


一、過渡  

  過渡(transition)是CSS3中具有顛覆性的特征之一,可以在不使用 Flash 動畫或 JavaScript 的情況下,當元素從一種樣式變換為另一種樣式時為元素添加效果。

  在CSS3里使用transition可以實現補間動畫(過渡效果),並且當前元素只要有“屬性”發生變化時即存在兩種狀態(我們用A和B代指),就可以實現平滑的過渡,為了方便演示采用hover切換兩種狀態,但是並不僅僅局限於hover狀態來實現過渡。

  語法格式:

transition: 要過渡的屬性  花費時間  運動曲線  何時開始;
如果有多組屬性變化,還是用逗號隔開。

    屬性:

屬性 描述 CSS
transition 簡寫屬性,用於在一個屬性中設置四個過渡屬性。 3
transition-property 規定應用過渡的 CSS 屬性的名稱。 3
transition-duration 定義過渡效果花費的時間。默認是 0。 3
transition-timing-function 規定過渡效果的時間曲線。默認是 "ease"。 3
transition-delay 規定過渡效果何時開始。默認是 0。 3

二、設置過渡屬性

  使用該屬性可以指定某個元素的過渡動畫的 CSS屬性名稱。

  語法格式:

transition-property:none | all | [<ident>][,<ident>] *;
    •   none:表示沒有元素;
    •       all:默認值,表中針對所有的元素,包括 :before 和 :after 元素;
    •       ident:指定 CSS 屬性列表,可以包括所有的屬性,包括新添加的 CSS3 的屬性

三、設置過渡時間

  使用該屬性來定義轉換動畫的時間長度。

  語法格式: 

transition-duration: <time> [,<time>] * ;
    •   初始值為0,適用於所有元素,以及 :before 和 :after 偽元素;
    •       單位是 秒 s 比如 0.5s 這個s單位必須寫

四、設置過渡動畫類型(運動曲線)

  該屬性用來定義過渡動畫的類型。

  語法格式:

transition-timing-function: ease | linear | ease-in | ease-out | ease-in-out  | cubicbezier{<number>,<number>,<number>,<number>}
    •      ease:平滑過渡,等同於 cubic-bezier(0.25,0.10.25,0.1) 函數,即 立方貝塞爾。(默認值
    •      linear:線性過渡,等同於 cubic-bezier(0.0,0.0,1.0,1.0) 函數
    •      ease-in:由慢到快,等同於 cubic-bezier(0.42,0.0,1.0,1.0) 函數
    •      ease-out:由快到慢,等同於 cubic-bezier(0,0,0.58,1.0) 函數
    •      ease-in-out:由慢到快再到慢,等同於 cubic-bezier(0.42,0.0,0.58,1.0) 函數
    •      cubic-bezier:特殊的 立方貝塞爾曲線效果。

  運動曲線示意圖:

  

五、設置延遲時間

  該屬性用來定義開啟過渡動畫的延遲時間。

  語法格式:

transition-delay:<time> [,<time>] *;
    •    初始值為0,適用於所有元素,以及 :before 和 :after 偽元素。
    •     設置時間可以為正整數,負整數和零,非零的時候必須設置單位是 s(秒) 或者 ms(毫秒)
    •     時間為負數的時候,過渡的動畫會從該時間點開始顯示,之前的動作被截斷;
    •     時間為正數的時候,過渡的動畫會延遲觸發;

六、設置觸發方式

  CSS3 動畫一般通過鼠標事件或狀態定義動畫,如 CSS偽類和 JavaScript 事件。

  CSS 動態偽類

動態偽類 作用元素 說明
:link 只有鏈接 未訪問的連接
:visited 只有鏈接 訪問過的鏈接
:hover 所有元素 鼠標經過的元素
:active 所有元素 鼠標點擊元素
:focus 所有可被選中的元素 元素被選中

  JavaScript 事件包括:click、focus、mousemove、mouseover、mouseout 等事件。

  還有另外一種方法是 使用 CSS3 媒體查詢來實現過渡動畫。

  


免責聲明!

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



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