CSS3 過渡是元素從一種樣式逐漸改變為另一種的效果。
盡管 CSS3 過渡效果是足夠的過渡的一個元素,但是 text-transform 屬性可以提高 CSS3 過渡效果的風格。
主要有四個屬性的CSS3轉換效果,已被描述如下:
* transition-property
* transition-duration
* transition-timing-function
* transition-delay
**注意:**Internet Explorer 10, Firefox, Opera, Chrome, 和Opera 支持transition 屬性。Safari 需要前綴 -webkit-。Internet Explorer 9 以及更早的版本,不支持 transition 屬性。Chrome 25 以及更早的版本,需要前綴 -webkit-
## transition-property
規定應用過渡的 CSS 屬性的名稱。
~~~
transition-property: all;
transition-property: none;
transition-property: background-color;
transition-property: background-color, height, width;
~~~
## transition-duration
定義過渡效果花費的時間。默認是 0。 時間單位可以是秒/毫秒。
~~~
transition-duration: 2s;
transition-duration: 1000ms;
transition-duration: 1000ms, 2000ms;
~~~
## transition-timing-function
規定過渡效果的時間曲線。默認是 "ease"。
~~~
transition-timing-function: ease;
transition-timing-function: ease-in;
transition-timing-function: ease-in-out;
transition-timing-function: ease, linear;
transition-timing-function: cubic-bezier(1.000, 0.835, 0.000, 0.945);
~~~
其中:
* linear:線性過渡。等同于貝塞爾曲線(0.0, 0.0, 1.0, 1.0)
* ease:平滑過渡。等同于貝塞爾曲線(0.25, 0.1, 0.25, 1.0)
* ease-in:由慢到快。等同于貝塞爾曲線(0.42, 0, 1.0, 1.0)
* ease-out:由快到慢。等同于貝塞爾曲線(0, 0, 0.58, 1.0)
* ease-in-out:由慢到快再到慢。等同于貝塞爾曲線(0.42, 0, 0.58, 1.0)
* step-start:等同于 steps(1, start)
* step-end:等同于 steps(1, end)
* steps(`<integer>[, [ start | end ] ]?`):接受兩個參數的步進函數。第一個參數必須為正整數,指定函數的步數。第二個參數取值可以是start或end,指定每一步的值發生變化的時間點。第二個參數是可選的,默認值為end。
* cubic-bezier(`<number>, <number>, <number>, <number>`):特定的貝塞爾曲線類型,4個數值需在[0, 1]區間內
## transition-delay
規定過渡效果何時開始。默認是 0。
~~~
transition-delay: 2s;
transition-delay: 1000ms, 2000ms;
transition-delay: -2s;
~~~
## 源碼
本文中所用例子源碼參見?[https://github.com/waylau/css3-tutorial](https://github.com/waylau/css3-tutorial)?中?`samples`?目錄下的 transitions.html