本文摘自PHP中文网,作者V,侵删。

本文主要讲述两种下划线动效效果,第一种悬停时X轴由内向外展开实现动画效果,第二种为左右自动展示,由左向右,或由右向左。
实现的主要效果是利用伪类标签,以及hover,利用transfromm trition实现动画效果。
x轴由内向外展开

利用贝塞尔曲线利用横线的动画实现,具体代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | ul {
display: flex;
padding: 0;
margin: 0;
list-style-type: none;
}
ul:hover li:not(:hover) a {
opacity: 0.2;
}
ul li {
position: relative;
padding: 30px 25px 30px 25px;
cursor: pointer;
}
ul li::after {
position: absolute;
content: "" ;
top: 100%;
left: 0;
width: 100%;
height: 2px;
background: #3498db;
transform: scaleX(0);
transition: 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
}
ul li:hover::after, ul li.active::after {
transform: scaleX(1);
}
|
(推荐教程:CSS教程)
左右横移下划线动画特效

主要利用js判断鼠标移开时的位置,对动画效果的进行左右移入移出显示
js代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | document.querySelectorAll( 'a' ).forEach(elem => {
elem.onmouseenter =
elem.onmouseleave = e => {
const tolerance = 5;
const left = 0;
const right = elem.clientWidth;
let x = e.pageX - elem.offsetLeft;
if (x - tolerance < left) x = left;
if (x + tolerance > right) x = right;
elem.style.setProperty( '--x' , `${x}px`);
};
});
|
css 利用伪类标签进行动画效果的动画实现
阅读剩余部分
相关阅读 >>
css实现背景图满屏效果
为什么要用css?
css如何设置超链接的样式
css水平居中怎么设置
css如何设置指定网格的大小和位置
css中submit意思是什么
html5的classlist属性操作css类的使用详解
css怎么设置居中
bootstrap 如何修改css样式
jsp怎么导入css
更多相关阅读请进入《css》频道 >>
人民邮电出版社
本书对 Vue.js 3 技术细节的分析非常可靠,对于需要深入理解 Vue.js 3 的用户会有很大的帮助。——尤雨溪,Vue.js作者
转载请注明出处:木庄网络博客 » css如何实现下划线滑动效果