CSS3的過渡效果,使用transition實現鼠標移入/移出效果


在css中使用偽類雖然實現了樣式的改變,但由於沒有過渡效果會顯得很生硬。以前如果要實現過渡,就需要借助第三方的js框架來實現。現在只需要使用CSS3的過渡(transition)功能,就可以從一組樣式平滑的切換到另一組樣式。

 

(1)背景色過渡變化

下面鼠標移入后,按鈕背景色會慢慢地變成黃色。鼠標離開,過渡效果又會發生,顏色恢復到初始狀態。

 

 1 <style>
 2 .slickButton {
 3     color: white;
 4     font-weight: bold;
 5     padding: 10px;
 6     border: solid 1px black;
 7     background: lightgreen;
 8     cursor: pointer;
 9     transition: background 0.5s;
10     -webkit-transition: background 0.5s;
11 }
12  
13 .slickButton:hover {
14     color: black;
15     background: yellow;
16 }
17 </style>
18  
19 <button class="slickButton">hangge.com</button>

 

 

 

(2)背景色,文字都需要過渡效果

 

上面樣例看到雖然背景色實現了過渡,文字顏色還是直接改變的。要實現多個樣式的過渡,只需使用逗號作為分隔符,同時制定多個樣式屬性即可。

 

 1 <style>
 2 .slickButton {
 3     color: white;
 4     font-weight: bold;
 5     padding: 10px;
 6     border: solid 1px black;
 7     background: lightgreen;
 8     cursor: pointer;
 9     transition: background 0.5s, color 0.5s;
10     -webkit-transition: background 0.5s, color 0.5s;
11 }
12  
13 .slickButton:hover {
14     color: black;
15     background: yellow;
16 }
17 </style>
18  
19 <button class="slickButton">hangge.com</button>

 

 

 

(3)過渡所有樣式

如果想要過渡所有的樣式,並且希望所有過渡都同步完成,可以在指定屬性名的地方填 all。  

 

1 transition: all 0.5s;
2 -webkit-transition: all 0.5s;

 

 

(4)淡入淡出

通過修改 opacity 屬性改變透明度,從而實現圖像的淡入淡出。
 1 <style>
 2 .slickButton2 {
 3     color: white;
 4     font-weight: bold;
 5     padding: 10px;
 6     border: solid 1px black;
 7     background: lightgreen;
 8     cursor: pointer;
 9     opacity: 0.5;
10     transition: opacity 0.5s;
11     -webkit-transition: opacity 0.5s;
12 }
13 .slickButton2:hover {
14     opacity: 1;
15 }
16 </style>
17 <button class="slickButton2">hangge.com</button>

熊貓辦公https://www.wode007.com/sites/73654.html

 

(5)陰影(投影)效果

使用 box-shadow 屬性可以為任何盒子元素添加陰影,從而制作出漂亮的懸停效果。

 

 1 <style>
 2 .slickButton3 {
 3     color: white;
 4     font-weight: bold;
 5     padding: 10px;
 6     border: solid 1px black;
 7     background: lightgreen;
 8     cursor: pointer;   
 9     transition: box-shadow 0.5s;
10     -webkit-transition: box-shadow 0.5s;
11 }
12 .slickButton3:hover {
13     box-shadow:5px 5px 10px gray;
14 }
15 </style>
16 <button class="slickButton3">hangge.com</button>

 

 

(6)發光效果

同樣利用 box-shadow 屬性可以實現發光效果,只不過把陰影偏移量設為0。

 

 1 <style>
 2 .slickButton4 {
 3     color: white;
 4     font-weight: bold;
 5     padding: 10px;
 6     border: solid 1px black;
 7     background: lightgreen;
 8     cursor: pointer;   
 9     transition: box-shadow 0.5s;
10     -webkit-transition: box-shadow 0.5s;
11 }
12  
13 .slickButton4:hover {
14     box-shadow:0px 0px 20px orange;
15 }
16 </style>
17 <button class="slickButton4">hangge.com</button>


 

 

下面樣式不值得使用過渡效果

對於內邊距(padding)、外邊距(margin)和字體大小(font-size)。如果應用由於瀏覽器要重新計算布局大小或文本提示,這樣過渡會消耗更多電量,同時可能導致響應遲鈍和卡殼。
如果想要移動、放大、縮小元素,那么最好使用變形技術。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM