html下划线 下移,css如何实现下划线滑动效果

html下划线 下移,css如何实现下划线滑动效果本文主要讲述两种下划线动效效果,第一种悬停时X轴由内向外展开实现动画效果,第二种为左右自动展示,由左向右,或由右向左。实现的主要效果是利用伪类标签,以及hover,利用transfrommtrition实现动画效果。x轴由内向外展开利用贝塞尔曲线利用横线的动画实现,具体代码如下:ul{display:flex;padding:0;margin:0;list-style-type:non…

大家好,又见面了,我是你们的朋友全栈君。

5268f80b9b1e01f982625ef6fac83ca1.png

fbdaea44cc4240c825b4ebdb2672376e.png

本文主要讲述两种下划线动效效果,第一种悬停时X轴由内向外展开实现动画效果,第二种为左右自动展示,由左向右,或由右向左。

实现的主要效果是利用伪类标签,以及hover,利用transfromm trition实现动画效果。

x轴由内向外展开

15c9be069c152df50195decffc24c2f5.png

利用贝塞尔曲线利用横线的动画实现,具体代码如下: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教程)

左右横移下划线动画特效

7bf24437d8e29f6da8670e9b187f30ff.png

主要利用js判断鼠标移开时的位置,对动画效果的进行左右移入移出显示

js代码如下: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代码如下:a {

position: relative;

font-weight: 600;

text-decoration: none;

color: rgba(0, 0, 0, 0.4);

transition: color .3s ease;

}

a::after {

–scale: 0;

content: ”;

position: absolute;

left: 0;

right: 0;

top: 100%;

height: 3px;

background: #4c81c9;

-webkit-transform: scaleX(var(–scale));

transform: scaleX(var(–scale));

-webkit-transform-origin: var(–x) 50%;

transform-origin: var(–x) 50%;

transition: -webkit-transform 0.3s cubic-bezier(0.535, 0.05, 0.355, 1);

transition: transform 0.3s cubic-bezier(0.535, 0.05, 0.355, 1);

transition: transform 0.3s cubic-bezier(0.535, 0.05, 0.355, 1), -webkit-transform 0.3s cubic-bezier(0.535, 0.05, 0.355, 1);

}

a:hover {

color: #4c81c9;

}

a:hover::after {

–scale: 1;

}

相关教程推荐:css视频教程

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/139950.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 如何为使用Python语言而辩论

    如何为使用Python语言而辩论

    2022年3月8日
    295
  • auto_increment 自增键的一些说明

    auto_increment 自增键的一些说明

    2021年11月7日
    50
  • 单射、双射、满射

    单射、双射、满射映射就是说对于集合X里的每一个元素x,按法则f,在集合Y里都有唯一的y与之对应,那么称f为从集合X到集合Y的映射。记作f:X->Y。映射基本要求是1.对于X中的每一个x,都有对应的y,还有2.一个x,只能有一个唯一的y与之对应。按照其他限制条件不同,可分为以下3种:单射:满足,对于不同的x,经过映射后的y不同。即当x1!=x2,f(x1)!==f(x2)。满足单射的映射可以不满足满射,例如,我们将一个满足单射的映射f的值域放大,此时有y没有x与之对应。满射:满足,Y集

    2022年6月10日
    108
  • cs架构和bs架构的应用_cs bs区别

    cs架构和bs架构的应用_cs bs区别悬赏园豆:200[已关闭问题]1.如何设计C/S和B/S混合结构?2.采用webservice,B/S端采用C#,C/S端采用C、delphi、VC++,如何进行通信?3.WebService的运行机理:首先客户端从服务器的到WebService的WSDL,同时在客户端声称一个代理类(ProxyClass),这个代理类负责与WebService服务器进行Request和Response,…

    2025年10月15日
    3
  • LLDP 链路发现协议「建议收藏」

    LLDP 链路发现协议「建议收藏」LLDP链路发现协议公有标准协议作用:在网络设备之间运行后,可以直接查看到设备之间的互联端口以及对方设备的简要信息配置:在每个设备的系统试图下开启LLDP就可以了。配置命令:[SW1]lldpenable//开启LLDP功能[SW2]lldpenable//开启LLDP功能displaylldpneighborbrief//查看设备上的LLDP邻居表LocalIntfNeighborDevNeighborIn

    2022年5月22日
    61
  • jieba库的用法

    jieba库的用法jieba“结巴”中文分词:做最好的Python中文分词组件“Jieba”(Chinesefor“tostutter”)Chinesetextsegmentation:builttobethebestPythonChinesewordsegmentationmodule.ScrolldownforEnglishdocumentation.特…

    2022年9月16日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号