CSS3制作hover下划线动画


Posted in HTML / CSS onMarch 27, 2017

1、前几天看到Hexo的next主题标题hover效果很炫,自己尝试写了一个,另一个是next的实现,照例先上图

CSS3制作hover下划线动画

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一样的效果。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

HTML / CSS 相关文章推荐
详解CSS3选择器的使用方法汇总
Nov 24 HTML / CSS
使用CSS3来代替JS实现交互
Aug 10 HTML / CSS
详解CSS3 filter:drop-shadow滤镜与box-shadow区别与应用
Aug 24 HTML / CSS
CSS3 按钮边框动画的实现
Nov 12 HTML / CSS
详解CSS3:overflow属性
Nov 17 HTML / CSS
html5嵌入内容_动力节点Java学院整理
Jul 07 HTML / CSS
html5 canvas 简单画板实现代码
Jan 05 HTML / CSS
Canvas与Image互相转换示例代码
Aug 09 HTML / CSS
HTML5 window/iframe跨域传递消息 API介绍
Aug 26 HTML / CSS
html5响应式开发自动计算fontSize的方法
Jan 13 HTML / CSS
html5中嵌入视频自动播放的问题解决
May 25 HTML / CSS
纯CSS3实现div按照顺序出入效果
Jul 15 HTML / CSS
利用CSS3制作简单的3d半透明立方体图片展示
Mar 25 #HTML / CSS
利用CSS3实现进度条的两种姿势详解
Mar 21 #HTML / CSS
CSS3实现头像旋转效果
Mar 13 #HTML / CSS
用React加CSS3实现微信拆红包动画效果
Mar 13 #HTML / CSS
css3类选择器之结合元素选择器和多类选择器用法
Mar 09 #HTML / CSS
利用Bootstrap实现漂亮简洁的CSS3价格表实例源码
Mar 02 #HTML / CSS
CSS3实现点击放大的动画实例代码
Feb 27 #HTML / CSS
You might like
解析在PHP中使用全局变量的几种方法
2013/06/24 PHP
php中的观察者模式简单实例
2015/01/20 PHP
利用php输出不同的心形图案
2016/04/22 PHP
Windows2003下php5.4安装配置教程(Apache2.4)
2016/06/30 PHP
php封装的smarty类完整实例
2016/10/19 PHP
Jquery 实现Tab效果 思路是js思路
2010/03/02 Javascript
jquery中的查找parents与closest方法之间的区别
2013/12/02 Javascript
使用JavaScript判断图片是否加载完成的三种实现方式
2014/05/04 Javascript
javascript点击按钮实现隐藏显示切换效果
2016/02/03 Javascript
JavaScript中数组去除重复的三种方法
2016/04/22 Javascript
JavaScript 监控微信浏览器且自带返回按钮时间
2016/11/27 Javascript
H5上传本地图片并预览功能
2017/05/08 Javascript
基于js中this和event 的区别(详解)
2017/10/24 Javascript
解决vue 按钮多次点击重复提交数据问题
2018/05/10 Javascript
微信小程序保存图片到相册权限设置
2020/04/09 Javascript
javascript实现图片轮换动作方法
2020/08/07 Javascript
[16:14]教你分分钟做大人:米拉娜(HEROS)
2014/11/24 DOTA
[51:27]LGD vs Liquid 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
[39:46]完美世界DOTA2联赛PWL S2 LBZS vs Rebirth 第二场 11.25
2020/11/25 DOTA
numpy 计算两个数组重复程度的方法
2018/11/07 Python
Python学习笔记之变量、自定义函数用法示例
2019/05/28 Python
基于python的Paxos算法实现
2019/07/03 Python
python 中Arduino串口传输数据到电脑并保存至excel表格
2019/10/14 Python
Python扫描端口的实现
2021/01/25 Python
全面解析CSS Media媒体查询使用操作(推荐)
2017/08/15 HTML / CSS
收集的22款给力的HTML5和CSS3帮助工具
2012/09/14 HTML / CSS
德国药房apodiscounter中文官网:德国排名前三的网上药店
2019/06/03 全球购物
国外软件测试工程师面试题
2016/12/09 面试题
国际贸易专业个人求职信范文分享
2013/12/14 职场文书
抗洪抢险事迹材料
2014/05/06 职场文书
节约用水的口号
2014/06/20 职场文书
客户答谢会活动方案
2014/08/31 职场文书
“四风”问题整改措施和努力方向
2014/09/20 职场文书
创业计划书之香辣虾火锅
2019/09/23 职场文书
vue前端工程的搭建
2021/03/31 Vue.js
MySQL主从复制断开的常用修复方法
2021/04/07 MySQL