天天看點

使用CSS3 Cubic-Bezier建立動畫連結懸停效果

使用CSS3 Cubic-Bezier建立動畫連結懸停效果

我們将使用CSS3動畫過渡來建立簡單但引人入勝的連結懸停效果,将滑鼠懸停在連結上時,會彈出一個小彈出框。我們還将看一下CSS3 Cubic-Bezier(貝塞爾)曲線,它是CSS過渡,為彈出框提供了更加流暢的運動,而不是僵化的機械運動。

這是我們最後的效果:

使用CSS3 Cubic-Bezier建立動畫連結懸停效果

讓我們開始吧!

html部分

這是我們連結的html,圖示來自iconfont.cn。

<div class="container">
  <section>
    <a href="#">
      <i class="fab fa-instagram"></i>
      <span>Instagram</span>
    </a>
    <a href="#">
      <i class="fab fa-github"></i>
      <span>Github</span>
    </a>
  </section>
</div>      

當您将滑鼠懸停在連結上時,span标簽将成為彈出框。接下來,我們進入css。

css樣式和動畫

我們将div容器居中,以使兩個連結在螢幕上居中。這也使對小彈出框進行動畫處理變得容易,因為它們将從連結的頂部彈出。​

div.container {
  display: inline-block;
  position:absolute;
  top:50%;
  left:50%;
  -ms-transform:translate(-50%,-50%);
  -webkit-transform:translate(-50%,-50%);
  transform:translate(-50%,-50%);
}      

接下來,我們對連結進行樣式設定,建立簡單的背景懸停效果,并定位社交媒體圖示。​

a {
  color:#fff;
  background: #8a938b;
  border-radius:4px;
  text-align:center;
  text-decoration:none;
  position: relative;
  display: inline-block;
  width: 120px;
  height: 100px;
  padding-top:12px;
  margin:0 2px;
  -o-transition:all .5s;
  -webkit-transition: all .5s;
  -moz-transition: all .5s;
  transition: all .5s;
   -webkit-font-smoothing: antialiased;
}a:hover {
  background: #5a665e;
}i{
  font-size: 45px;
  vertical-align: middle;
  display: inline-block;
  position: relative;
  top: 20%;
}      

接下來,我們将對彈出文本進行樣式設定和動畫處理。​

a span {
  color:#666;
  position:absolute;
  font-family: 'Chelsea Market', cursive;
  bottom:0;
  left:-15px;
  right:-15px;
  padding: 15px 7px;
  z-index:-1;
  font-size:14px;
  border-radius:5px;
  background:#fff;
  visibility:hidden;
  opacity:0;
  -o-transition:all .5s cubic-bezier(0.68, -0.55, 0.265, 1.55);
  -webkit-transition: all .5s cubic-bezier(0.68, -0.55, 0.265, 1.55);
  -moz-transition: all .5s cubic-bezier(0.68, -0.55, 0.265, 1.55);
  transition: all .5s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}/* 當圖示處于懸停狀态時,文本将彈出 */
a:hover span {
  bottom: 130px;
  visibility:visible;
  opacity:1;
}      

CSS3 Cubic-Bezier曲線由四個點p0,p1,p2和p3定義。p0點是曲線的起點,而p3點是曲線的終點。曲線越線性,運動就越僵硬(或不那麼流暢)。

如果一個點一開始是正數,而下一個點是負數,那麼運動一開始就會很慢。當點值變得比之前的點值高時,運動加快。

這就是CSS中Cubic-Bezier點的含義。由于動畫短,是以動作很細微。彈出框從正方形底部開始時緩慢開始,然後開始加速到頂部。

盡管您可以建立沒有Cubic-Bezier曲線過渡的動畫,但動畫的差異如下:

可以看到,動畫為懸停效果增添了生氣。

最後一組CSS涉及樣式化彈出框底部的小箭頭。要了解有關在CSS中如何制作三角形的更多資訊,請檢視此CSS技巧文章。

總結

我們建立了一個簡約的按鈕樣式連結。連結具有基本的背景懸停效果,但我們并沒有止步于此。我們添加了一個小彈出框來顯示連結的文本。在CSS3 Cubic-Bezier塞爾曲線的幫助下,動畫流暢且令人愉悅。

這類知識非常有用,可以作為你顯示社交媒體帳戶的網站設計的一部分。

本文示例示範和完整代碼請通路如下位址,建議PC端打開 https://coding.zhanbing.site

本文完~

使用CSS3 Cubic-Bezier建立動畫連結懸停效果