首頁  >  文章  >  web前端  >  使用CSS3製作hover底線動畫方法

使用CSS3製作hover底線動畫方法

高洛峰
高洛峰原創
2017-03-28 09:50:282510瀏覽

本文主要介紹了CSS3製作hover下劃線動畫的方法步驟。具有很好的參考價值。下面跟著小編一起來看下吧

1、前幾天看到Hexo的next主題標題hover效果很炫,自己嘗試寫了一個,另一個是next的實現,照例先上圖

使用CSS3製作hover底線動畫方法

#2、實作小黑科技

 <!-- html结构 -->
 <p>
     <a>自己实现的hover效果</a>
 </p>
/* css样式 */
        .demo1{
            position: relative;
            text-decoration: none;
            font-size: 20px;
            color: #333;
        }
        .demo1:before{
            content: "";
            position: absolute;
            left: 50%;
            bottom: -2px;
            width: 0;
            height: 2px;
            background: #4285f4;
            transition: all .3s;
        }
        .demo1:hover:before{
            width: 100%;
            left: 0;
            right: 0;
        }

關鍵在於沒有hover的時候定義width為0,這樣可以實現寬度從0到100%的變化。

left為50%,目的是為了動畫開始的位置是在50%的位置。

3、hexo next主題的官方實作

<!-- html结构 -->
<p>
    <a>Hexo next主题的实现</a>
</p>
/* css样式 */
        .demo2{
            position: relative;
            text-decoration: none;
            font-size: 20px;
            color: #333;
        }
        .demo2:before{
            content: "";
            position: absolute;
            left: 0;
            bottom: -2px;
            height: 2px;
            width: 100%;
            background: #4285f4;
            transform: scale(0);
            transition: all 0.3s;
        }
        .demo2:hover:before{
            transform: scale(1);
        }

這個實作的關鍵就是scale(0)到scale(1)的變化。

CSS3的scale transform的原點是中點,所以會從中間的位置開始動畫。

4、兩者差異

透過動畫也看出來,next的動畫有透明漸變的效果,和scale的表現形式有關。

第一個實作只是width變化,但也可以用animation實現和next一樣的效果。

以上是使用CSS3製作hover底線動畫方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn