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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • MYSQL | ERROR 1305(42000) SAVEPOINT *** DOES NOT EXIST「建议收藏」

    MYSQL | ERROR 1305(42000) SAVEPOINT *** DOES NOT EXIST

    2022年2月10日
    65
  • spring源码搭建_积木搭建的基本技巧

    spring源码搭建_积木搭建的基本技巧一Spring源码下载官网下载(下载太慢):https://github.com/spring-projects/spring-framework/archive/v5.0.2.RELEASE.zip码云下载:https://gitee.com/mirrors/Spring-Framework/tree/v5.0.2.RELEASE/二Gradle的源码构建技巧1Gr…

    2022年8月12日
    9
  • PyCharm代码格式调整

    PyCharm代码格式调整PyCharm 代码格式调整前言序锦很多时候 当我们在使用编辑器的时候 遇到复制粘贴 修改别人代码等等的时候 都会遇到这个让人头疼的问题 那就是如何解决格式问题 今天就让华仔带你一起去解决这些困扰了你好久的问题吧 PyCharm 中调整代码格式 PyCharm 中代码整体缩进 以及反向缩进 pycharm 中调整代码格式首先打开 PyCharm 右上角文件

    2025年10月15日
    4
  • Keil(MDK-ARM)使用教程——在线调试

    Keil(MDK-ARM)使用教程——在线调试Keil(MDK-ARM)使用教程(三)_在线调试由于我是直接使用(打开现有的软件工程),如果跟着需要下载上面演示参考的软件工程才行。工程默认是使用硬件在线调试,接下来按照每一点来讲述。 1.编译+调试打开软件工程 -&gt; 编译 -&gt; 调试这里的编译建议使用BuildTarget(第2个按钮)编译工程(如下图动画),也就是使用快捷键F7。Translate(第1个按钮)是编译当前活动文…

    2022年5月23日
    41
  • 手动创建线程池_创建线程池的5个参数

    手动创建线程池_创建线程池的5个参数一,Executors类不建议使用自带的工具类的!使用JDK自带的Executors工具类(图中蓝色框中的那个,这是独立于线程池继承关系图的工具类,类似于Collections和Arrays)可以直接创建以下种类的线程池线程数量固定的线程池,此方法返回ThreadPoolExecutorpublicstaticExecutorServicenewFixedThreadPool(intnThreads){……}单线程线程池,此方法返回ThreadPoolExecu

    2022年10月1日
    4
  • ODS简介_医学ods是什么意思

    ODS简介_医学ods是什么意思什么是ODS操作数据存储ODS(OperationalDataStore)是数据仓库体系结构中的一个可选部分,由业务系统产生的报表、细节数据的查询自然能够从ODS中进行,从而降低业务系统的查询压力。ODS设计与DW设计在着眼点上有所不同,ODS重点考虑业务系统数据是什么样子的,关系如何,在业务流程处理的哪个环节,以及数据抽取接口等问题。ODS是一个将面向主题的,动态增长的,非实时的,消除了原

    2022年9月26日
    5

发表回复

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

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