本文摘自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 border-top-right-radius属性怎么用
css中如何使用@规则?用法介绍
css如何让a标签不可点击
css border-left-style属性怎么用
css篇:如何将页面背景设置渐变效果(代码详解)
css如何设置元素高度自适应
css中的&是什么意思
css如何添加阴影边框(代码实例)
更多相关阅读请进入《css》频道 >>
人民邮电出版社
本书对 Vue.js 3 技术细节的分析非常可靠,对于需要深入理解 Vue.js 3 的用户会有很大的帮助。——尤雨溪,Vue.js作者
转载请注明出处:木庄网络博客 » css如何实现下划线滑动效果