CSS 過渡
CSS 過渡
CSS 過渡允許您在給定的時間內平滑地改變屬性值。
請把鼠標移動到這個元素上,來查看 CSS 過渡效果:
CSS
在本章中,您將學習如下屬性:
transition
transition-delay
transition-duration
transition-property
transition-timing-function
對過渡的瀏覽器支持
表格中的數字注明了完全支持該屬性的首個瀏覽器版本。
屬性 | Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|---|
transition | 26.0 | 10.0 | 16.0 | 6.1 | 12.1 |
transition-delay | 26.0 | 10.0 | 16.0 | 6.1 | 12.1 |
transition-duration | 26.0 | 10.0 | 16.0 | 6.1 | 12.1 |
transition-property | 26.0 | 10.0 | 16.0 | 6.1 | 12.1 |
transition-timing-function | 26.0 | 10.0 | 16.0 | 6.1 | 12.1 |
如何使用 CSS 過渡?
如需創建過渡效果,必須明確兩件事:
- 您要添加效果的 CSS 屬性
- 效果的持續時間
注意:如果未規定持續時間部分,則過渡不會有效果,因為默認值為 0。
下面的例子展示了 100px * 100px 的紅色 <div> 元素。 <div> 元素還為 width 屬性指定了過渡效果,持續時間為 2 秒:
實例
div { width: 100px; height: 100px; background: red; transition: width 2s; }
當指定的 CSS 屬性(width)值發生變化時,將開始過渡效果。
現在,讓我們為 width 屬性指定一個鼠標懸停在 <div> 元素上時的新值:
實例
div:hover { width: 300px; }
請注意,當光標從元素上移開時,它將逐漸變回其原始樣式。
改變若干屬性值
下面的例子為 width 和 height 屬性都添加了過渡效果,width 是 2 秒,height 是 4 秒:
實例
div { transition: width 2s, height 4s; }
指定過渡的速度曲線
transition-timing-function
屬性規定過渡效果的速度曲線。
transition-timing-function 屬性可接受以下值:
ease
- 規定過渡效果,先緩慢地開始,然后加速,然后緩慢地結束(默認)linear
- 規定從開始到結束具有相同速度的過渡效果ease-in
-規定緩慢開始的過渡效果ease-out
- 規定緩慢結束的過渡效果ease-in-out
- 規定開始和結束較慢的過渡效果cubic-bezier(n,n,n,n)
- 允許您在三次貝塞爾函數中定義自己的值
下面的例子展示了可以使用的一些不同的速度曲線:
實例
#div1 {transition-timing-function: linear;} #div2 {transition-timing-function: ease;} #div3 {transition-timing-function: ease-in;} #div4 {transition-timing-function: ease-out;} #div5 {transition-timing-function: ease-in-out;}
更多過渡實例
您可以可以一一指定 CSS 過渡屬性,如下所示:
實例
div { transition-property: width; transition-duration: 2s; transition-timing-function: linear; transition-delay: 1s; }
或使用簡寫的 transition
屬性:
實例
div { transition: width 2s linear 1s; }
CSS 過渡屬性
下表列出了所有 CSS 過渡屬性:
屬性 | 描述 |
---|---|
transition | 簡寫屬性,用于將四個過渡屬性設置為單一屬性。 |
transition-delay | 規定過渡效果的延遲(以秒計)。 |
transition-duration | 規定過渡效果要持續多少秒或毫秒。 |
transition-property | 規定過渡效果所針對的 CSS 屬性的名稱。 |
transition-timing-function | 規定過渡效果的速度曲線。 |