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


相关推荐

  • sublime text 3下载与安装详细教程「建议收藏」

    sublime text 3下载与安装详细教程「建议收藏」一、下载:打开官网下载链接http://www.sublimetext.com/3,下载SublimeText3portableversion”下载下来为“SublimeTextBuild3083x64.zip”编辑器的包,解压后无需安装就能运行,直接创建桌面快捷键就好二、双击桌面“SublimeText3”快捷图标,打开程序,就可…

    2022年7月11日
    54
  • java如何打印菱形_java实现空心菱形

    java如何打印菱形_java实现空心菱形第一步:首先对图像进行解析想要打印如图所示的形状经过简单分析之后可得出想要打印该图形必须要进行多层循环嵌套分两个部分进行打印第一部分为上半部分前四行他们是递增的关系后半部分后三行为递减关系,由此可以得出我们需要写两个打的循环。并且由于“*”位置的关系我们必须带入空格同时打印所以每个部分需要两个循环控制,即两个大循环每个里面嵌套两个小循环总计四个循环。第二部:对数字进行分析在分析之前我们必…

    2025年5月31日
    5
  • Python源码保护[通俗易懂]

    Python源码保护[通俗易懂]1混淆改方法主要将函数、类名以及变量名等替换为其他符号,提高了阅读的难度,Python代码混淆网站。但该方法未改变程序的主体结构,实际效果并不是很好。具体如下图1所示:2pycpython是先把源码py文件编译成pyc或者pyo,然后由python的虚拟机执行。最简单的加密方法是将编译后的pyc二进制文件发布,详情可以参考blog。但与其他语言一样编译后的产生的pyc依然可以通过反编译得…

    2022年8月23日
    6
  • Spring Boot实现MyBatis分页查询[通俗易懂]

    Spring Boot实现MyBatis分页查询[通俗易懂]综合概述想必大家都有过这样的体验,在使用Mybatis时,最头痛的就是写分页了,需要先写一个查询count的select语句,然后再写一个真正分页查询的语句,当查询条件多了之后,会发现真的不想花双倍的时间写count和select,幸好我们有pagehelper分页插件,pagehelper是一个强大实用的MyBatis分页插件,可以帮助我们快速的实现MyBatis分页功能,而且pagehelper有个优点是,分页和Mapper.xml完全解耦,并以插件的形式实现,对Mybatis执行的.

    2022年5月5日
    68
  • SpringMVC框架–学习笔记(上)

    SpringMVC框架–学习笔记(上)

    2021年9月26日
    57
  • uboot的作用和功能

    uboot的作用和功能uboot是用来干什么的,有什么作用?uboot属于bootloader的一种,是用来引导启动内核的,它的最终目的就是,从flash中读出内核,放到内存中,启动内核所以,由上面描述的,就知道,UBOOT需要具有读写flash的能力。uboot是怎样引导启动内核的?uboot刚开始被放到flash中,板子上电后,会自动把其中的一部分代码拷到内存中执行,这部分代码负责把剩余的uboo…

    2022年6月15日
    56

发表回复

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

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