首頁 > web前端 > css教學 > 如何使用純CSS實現從按鈕兩側滑入元素的懸停效果(附源碼)

如何使用純CSS實現從按鈕兩側滑入元素的懸停效果(附源碼)

不言
發布: 2018-10-08 16:41:41
轉載
2269 人瀏覽過

這篇文章帶給大家的內容是關於如何使用純CSS實現從按鈕兩側滑入元素的懸停效果(附源碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

效果預覽

如何使用純CSS實現從按鈕兩側滑入元素的懸停效果(附源碼)

原始碼下載

https://github.com/comehop​​e/front- end-daily-challenges

程式碼解讀

定義dom,容器是一個無序列表,清單項目代表按鈕:

登入後複製
登入後複製
        
  • home

以居中顯示:

body {
  margin: 0;
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(deepskyblue, navy);
}
登入後複製

去掉清單項目前面的符號:

ul {
  padding: 0;
  list-style-type: none;
}
登入後複製

設定按鈕的文字樣式:

ul li {
  color: #ddd;
  font-size: 25px;
  font-family: sans-serif;
  text-transform: uppercase;
}
登入後複製

用偽元素在按鈕的左側增加一個方塊:

ul li {
  position: relative;
}

ul li::before {
  content: '';
  position: absolute;
  width: 100%;
  height: 100%;
  background: tomato;
  left: -100%;
}
登入後複製

用偽元素在按鈕的右側增加一條底線:

ul li::after {
  content: '';
  position: absolute;
  width: 100%;
  height: 0.2em;
  background: tomato;
  bottom: 0;
  left: 100%;
}
登入後複製

接下來設定滑鼠懸停效果。
當滑鼠懸停時,左側的方塊移到文字所在位置:

ul li::before {
  transition: 0.4s ease-out;
}

ul li:hover::before {
  left: 100%;
}
登入後複製

右側的下劃線移到文字所在位置,它的動畫時間延遲到方塊的動畫快結束時再開始:

ul li::after {
  transition: 0.3s 0.3s ease-out;
}

ul li:hover::after {
  left: 0%;
}
登入後複製

同時,提高文字的亮度:

ul li {
  transition: 0.3s;
  cursor: pointer;
}

ul li:hover {
  color: #fff;
}
登入後複製

隱藏掉按鈕外的部分,使方塊和下劃線在預設狀態下都不可見,只有滑鼠懸停時它們才從兩側邊入場:

ul li {
  overflow: hidden;
}
登入後複製

最後,在dom 中再增加幾個按鈕:

登入後複製
登入後複製
        
  • home
  •     
  • products
  •     
  • services
  •     
  • contact

佈局多個按鈕:

ul {
  display: flex;
  flex-direction: column;
  align-items: center;
}

ul li {
  margin: 0.5em;
}
登入後複製

以上是如何使用純CSS實現從按鈕兩側滑入元素的懸停效果(附源碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:segmentfault.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板