如何實現按鈕懸停時的淡入淡出效果

在本指南中,您可以瞭解如何在使用滑鼠懸停在按鈕上時,在兩種顏色之間實現平滑的淡入淡出效果。

在我們的按鈕示例中,我們可以透過為 :hover 動態偽類定義不同的背景顏色來更改按鈕的背景。然而,滑鼠懸停在按鈕上時,背景顏色會直接變為新顏色。為了在兩者之間建立更平滑的過渡,我們可以使用 CSS Transitions(CSS 過渡)。

使用過渡

在添加了懸停狀態所需的顏色後,將 transition 屬性新增到按鈕的規則中。對於簡單的過渡,transition 的值是您希望此過渡應用的屬性的名稱,以及過渡應該花費的時間。

對於 :active:focus 偽類,將 transition 屬性設定為 none,這樣按鈕在點選時會直接變為活動狀態。

在示例中,過渡需要 1 秒鐘,您可以嘗試更改此值,看看速度變化帶來的不同效果。

html
<div class="wrapper">
  <button class="fade">Hover over me</button>
</div>
css
.fade {
  background-color: #db1f48;
  color: white;
  transition: background-color 1s;
}

.fade:hover {
  background-color: #004369;
}

.fade:focus,
.fade:active {
  background-color: black;
  transition: none;
}

注意: transition 屬性是 transition-delaytransition-durationtransition-propertytransition-timing-function 的簡寫。請參閱 MDN 上這些屬性的頁面,以找到調整過渡的方法。

另見