實戰:如何使用CSS3 Cubic-Bezier創建鏈接懸停動畫效果

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

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

這是我們最後的效果:

實戰:如何使用CSS3 Cubic-Bezier創建鏈接懸停動畫效果

讓我們開始吧!


HTML部分

這是我們鏈接的HTML,圖標來自iconfont.cn。

<code>




/
/<code>

當您將鼠標懸停在鏈接上時,span標籤將成為彈出框。接下來,我們進入CSS

CSS樣式和動畫

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

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

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

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

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

<code>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;
}/<code>

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

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

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

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

實戰:如何使用CSS3 Cubic-Bezier創建鏈接懸停動畫效果

有Cubic-Bezier曲線過渡的動畫

實戰:如何使用CSS3 Cubic-Bezier創建鏈接懸停動畫效果

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

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

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

總結

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

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

本文示例演示和完整代碼請訪問如下地址,建議PC端打開

實戰:如何使用CSS3 Cubic-Bezier創建鏈接懸停動畫效果

https://coding.zhanbing.site


關於CSS方面的進階知識,推薦張鑫旭大神的兩本神作


如果對你有所啟發和幫助,可以點個關注

、收藏、轉發,也可以留言討論,這是對作者的最大鼓勵。

作者簡介:Web前端工程師,全棧開發工程師、持續學習者。

現在關注《前端外文精選》微信公眾號,送精品視頻視頻教程大禮包!


分享到:


相關文章: