这篇文章主要介绍了CSS3如何制作hover下划线动画,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
1、前几天看到Hexo的next主题标题hover效果很炫,自己尝试写了一个,另一个是next的实现,照例先上图
2、实现小黑科技
<!-- html结构 --> <div> <a href="javascript:void(0);" class="demo1">自己实现的hover效果</a> </div>
/* 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结构 --> <div> <a href="javascript:void(0);" class="demo2">Hexo next主题的实现</a> </div>
/* 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下划线动画”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。