transition屬性目的是讓css的一些屬性(如background)的以平滑過渡的效果出現。它是一個合併屬性,是由以下四個屬性組合而成: transition-property:設置應用過渡的CSS屬性,如background。 transition-duration:設置過渡效果花費的時間。 ...
transition屬性目的是讓css的一些屬性(如background)的以平滑過渡的效果出現。它是一個合併屬性,是由以下四個屬性組合而成:
- transition-property:設置應用過渡的CSS屬性,如background。
- transition-duration:設置過渡效果花費的時間。預設是 0。
- transition-timing-function:設置過渡效果的時間曲線。預設是 "ease"。
- transition-delay:規定過渡效果何時開始。預設是 0。
示例:
?1 2 3 4 |
button{
transition: background 1 s;
-webkit-transition: background 1 s; /* Safari */
}
|
定義transition屬性時,transition-property和transition-duration是必選,其他兩個為可選。
transition-property和transition-duration css3動畫
transition-property用來指定應用過渡效果的CSS屬性,這些屬性包括(可能不全):
- width
- height
- color
- background (color, image, position)
- transform (in the next post)
- border (color, width)
- position (top, bottom, left, right )
- text (size, weight, shadow, word-spacing)
- margin
- padding
- opacity
- visibility
- z-index
- all
transition-duration屬性用來設置指定屬性的過渡效果花費時間,可以是秒(s)或者毫秒(ms)。
transition-delay和transition-timing-function
transition-delay用來設置過渡效果開始的時間,預設為0,可以是秒(s)或者毫秒(ms)css3滑鼠經過。如果transition-delay是負數,表示過渡效果提前開始。
transition-timing-function用來設置過渡的效果,這些效果包括:
- ease - 開始慢,中間快,結束慢
- ease-in - 漸入效果,慢入快出
- ease-out - 漸出效果,快入慢出.
- ease-in-out - 開始慢和結束慢
- cubic-bezier(n,n,n,n) - 在 cubic-bezier 函數中定義自己的值。可能的值是 0 至 1 之間的數值
示例:
?1 2 3 4 |
button{
transition: background 1 s ease-in-out 2 s;
-webkit-transition: background 1 s ease-in-out 2 s; /* Safari */
}
|
多屬性
對於多個屬性,各個屬性的效果以逗號隔開:
?1 2 3 4 |
button{
transition: background 1 s ease-in-out 2 s, width 2 s linear;
-webkit-transition: background 1 s ease-in-out 2 s, width 2 s linear; /* Safari */
}
|
相容性
Internet Explorer 10、Firefox、Opera 和 Chrome 支持 transition 屬性。
Safari 支持替代的 -webkit-transition 屬性。
Internet Explorer 9 以及更早版本的瀏覽器不支持 transition 屬性。
觸發
需要註意的是,過渡效果是需要之前已經定義好了屬性,過渡效果通過觸發來應用,比如:hover, :focus, and :active等。