CSS3 Transition介紹

weixin_34377065發表於2012-07-23

CSS3提供了一種全新的方式來定義CSS屬性改變時的過渡效果,通常在:hover、:focus的條件下觸發。過去,為了實現這種平滑的過渡效果,我們需要藉助於Flash技術,現在只需要簡單的使用CSS3 Transition的方法,就可以實現。Transition的效果,可以廣泛的應用在background-color、width、height、opacity等屬性發生改變時。目前,CSS3 Transition模組還在草案階段,所以規範和語法還未完全確定下來,目前也並不是所有的瀏覽器支援CSS3,所以還需要一些特殊的程式碼來實現多瀏覽器的相容。

 

下面用一個簡單的例子來說明CSS3 Transition的效果:

 
Example 1: 沒有過渡效果

Example 2: 5秒鐘的過渡效果

 

CSS3 Transition的語法:

transition: <transition> [, <transition>]*

<transition> = <transition-property> <transition-duration> <transition-timing-function> <transition-delay>

這種寫法是比較簡單的寫法,我們可以同時寫多個Transition效果,每個效果按照固定屬性的順序書寫。如下

transition:left 3s linear, background-color 3s ease;

transition的屬性包括:需要應用的屬性transition-property、Transition的時間transition-duration、時間函式transition-timing-function、延遲時間(可選引數)transition-delay。這些屬性也可以單獨的指定,分別介紹如下:

transition-property

transition-property:none | all | [ <IDENT> ] [, <IDENT> ]*

如果使用all關鍵字或者省略了transition-property,那麼所有發生變化的屬性都會應用transition,如果使用none關鍵字,則不會有transition效果。如果指定了多個屬性,那麼在其他的transition-*屬性中,也需要按照對應的順序指定。所有支援Transition的屬性,可以在3中看到。

transition-duration

這個屬性接受以逗號分割的一系列數值,表示Transition持續的時間,接受2s或者2000ms的形式。預設值為0,表示Transition立即生效。

transition-duration: <time> [, <time> ]*

transition-timing-function

這個屬性指定transition的效果,可以通過預定義的函式來實現(ease、linear、ease-in、ease-out、ease-in-out),也可以自己指定函式。

transition-timing-function:<timing-function&gt [, <timing-function>]*

下面看一下預定義的函式的效果

ease
linear
ease-in
ease-out
ease-in-out

transition-delay

這個是一個可選屬性,可以用來制定在多長時間後觸發transition,預設是0.

transition-delay: <time> [, <time> ]*

相關文章