實戰|使用CSS3 Cubic-Bezier建立動畫連接懸停效果

image

咱們將使用CSS3動畫過渡來建立簡單但引人入勝的連接懸停效果,將鼠標懸停在連接上時,會彈出一個小彈出框。css

咱們還將看一下CSS3 Cubic-Bezier(貝塞爾)曲線,它是CSS過渡,爲彈出框提供了更加流暢的運動,而不是僵化的機械運動。html

這是咱們最後的效果git

讓咱們開始吧!github

HTML部分

這是咱們連接的HTML,圖標來自iconfont.cn。web

<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%);
}

接下來,咱們對連接進行樣式設置,建立簡單的背景懸停效果,並定位社交媒體圖標。url

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%;
}

接下來,咱們將對彈出文本進行樣式設置和動畫處理。spa

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曲線由四個點p0p1p2p3定義。 p0點是曲線的起點,而p3點是曲線的終點。曲線越線性,運動就越僵硬(或不那麼流暢)。設計

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

這就是CSS中Cubic-Bezier點的含義。因爲動畫短,因此動做很細微。彈出框從正方形底部開始時緩慢開始,而後開始加速到頂部。

儘管您能夠建立沒有Cubic-Bezier曲線過渡的動畫,但動畫的差別以下:

有Cubic-Bezier曲線過渡的動畫

沒有Cubic-Bezier曲線過渡的動畫

能夠看到,動畫爲懸停效果增添了生氣。

最後一組CSS涉及樣式化彈出框底部的小箭頭。要了解有關在CSS中如何製做三角形的更多信息,請查看此CSS技巧文章。

總結

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

這類知識很是有用,能夠做爲你顯示社交媒體賬戶的網站設計的一部分。

本文示例演示和完整代碼請訪問以下地址,建議PC端打開 https://coding.zhanbing.site

相關文章
相關標籤/搜索