一、語法
transition: property duration timing-function delay
transition屬性是個復合屬性,她包括以下幾個子屬性:
默認值分別為:all 0 ease 0
注:transition-duration 時長為0,不會產生過渡效果
改變多個css屬性的過渡效果時:
a{ transition: background 0.8s ease-in 0.3s,color 0.6s ease-out 0.3s;}
二、子屬性
transition-property: none |all |property;
值為none時,沒有屬性會獲得過渡效果,值為all時,所有屬性都將獲得過渡效果,值為指定的css屬性應用過渡效果,多個屬性用逗號隔開
transition-duration:time;
該屬性主要用來設置一個屬性過渡到另一個屬性所需的時間,也就是從舊屬性過渡到新屬性花費的時間長度,俗稱持續時間
transition-timing-function:linear| ease| ease-in| ease-out| ease-in-out| cubic-bezier(n,n,n,n);
該屬性指的是過渡的“緩動函數”。主要用來指定浏覽器的過渡速度,以及過渡期間的操作進展情況,解釋下:
注意:值cubic-bezier(n,n,n,n)可以中定義自己的值,如 cubic-bezier(0.42,0,0.58,1)
div { width: 100px; height: 100px; background-color: orange; margin: 20px auto; border-radius: 100%; -webkit-transition-property: -webkit-border-radius; transition-property: border-radius; -webkit-transition-duration: 3s; transition-duration: 3s; -webkit-transition-timing-function:ease; transition-timing-function:ease; div:hover { border-radius: 0px; }
我試著換不同的值看看區別,但並不是很明顯,把持續時間弄長點估計更能看出,但是因為gif太大怕傳不上來所以就弄了3秒的時間。
ease:由快到慢到更慢
linear:恆速
ease-in:越來越快
ease-out:越來越慢
ease-in-out:先加速後減速
這個屬性沒什麼說的了,就是過渡效果開始前的延遲時間,單位秒或者毫秒
再來個栗子:
div { width: 200px; height: 200px; background: red; margin: 20px auto; -webkit-transition-property: background; transition-property:background; -webkit-transition-duration:.5s; transition-duration:.5s; -webkit-transition-timing-function: ease-in; transition-timing-function: ease-in; -webkit-transition-delay: .18s; transition-delay:.18s; } div:hover { background: #000; }