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

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

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

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

x轴由内向外展开

05d90f3561df177adfc2def0b0ece12.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教程)

左右横移下划线动画特效

81cfb8c583e15a1c62d31c32b374244.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  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视频教程

以上就是css如何实现下划线滑动效果的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1614963.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月24日 04:40:19
下一篇 2025年12月24日 04:40:32

相关推荐

  • 详细介绍css中的数学表达式calc()

    数学表达式calc()是css中的函数,主要用于数学运算。使用calc()为页面元素布局提供了便利和新的思路。 定义 数学表达式calc()是calculate计算的缩写,它允许使用+、-、*、/这四种运算符,可以混合使用%、px、em、rem等单位进行计算 兼容性: IE8-、safari5.1-…

    2025年12月24日
    000
  • css如何控制网页背景颜色

    说到背景也就只有背景颜色和颜色图片,这两个我想大家一定都知道在里加入bgcolor=”#808080″和background=”url”对吧,可是我这里将要介绍不是这样做的,而是用css样式来做的,虽说有些麻烦,可是整体配合还是非常不错的。 背景颜色 …

    2025年12月24日
    000
  • css如何实现n宫格布局

    设计思路(无关你是scss还是less) 1、为了方便内部元素水平/垂直居中, 整体我们用flex布局. 2、使用正方形占位, 因为用了padding-top:100%, 所以我们就需要再单独用一个div来装内容, 我给他起名”item__content”. 3、为了让内容的…

    2025年12月24日
    000
  • css如何实现图片堆叠效果

    1、初始index.html 为了建立第一张照片,也就是最上面的那张。我们只需要添加一个div,里面包含照片的img。就这么多,剩下的效果都是通过CSS来实现的。确保div的class为stackone。 Photo Stack * { margin: 0; padding: 0; } html, …

    2025年12月24日
    000
  • css如何实现表单验证功能

    原理 表单元素中,有一个pattern属性,可以自定义正则表达式(如手机号、邮箱、身份证..);valid伪类,可以匹配通过pattern验证的元素;invalid伪类则相反,可以匹配未通过pattern验证的元素。 (推荐教程:CSS入门教程) html代码 布局很简单,input跟button是…

    2025年12月24日
    000
  • css实现背景图满屏效果

    想让整个界面有一个背景图片,自然想到的是在body上加background,代码如下: body { width:100%; height: 100%; /* 加载背景图 */ background: url(“../static/images/index/backImg.jpg”) no-repe…

    2025年12月24日
    000
  • css中position属性有哪些用法

    position属性 position属性指定用于元素的定位方法的类型(静态,相对,固定,绝对或粘性)。 有五种不同的值: •static•relative•fixed•absolute•sticky 然后使用top,bottom,left和right属性定位元素。但是,除非首先设置position…

    2025年12月24日
    000
  • css如何修改默认滚动条样式

    前言: 很多项目都需要改变滚动条的默认样式,并不想单独下载和引入插件。 修改方法:(推荐教程:CSS入门教程) &::-webkit-scrollbar { // 滚动条的背景 width: 16px; background: #191a37; height: 14px; } &::…

    2025年12月24日
    000
  • css中zoom属性有什么作用

    css zoom属性 zoom:设置或检索对象的缩放比例,触发IE浏览器的haslayout属性,解决浮动,margin重叠等一些问题。 语法: zoom:normal (推荐教程:CSS教程) 立即学习“前端免费学习笔记(深入)”; 参数: normal:使用对象的实际尺寸(默认值)number:…

    2025年12月24日
    000
  • css如何实现开关效果

    首先是构思: 我们使用标签来实现这个效果。 checkbox的选中、未选中的特性,刚好对应开关的打开、关闭 on:打开 off:关闭 未选中,则关闭开关 选中,则打开开关 效果: 立即学习“前端免费学习笔记(深入)”; (推荐教程:CSS入门教程) 开始画出off、on状态的草图 这里要讲解一下,使…

    2025年12月24日 好文分享
    000
  • css如何实现一个自适应容器

    目标: 实现一个宽度自适应,高度为宽度一半的容器。 一、思考如何实现 这个问题类似于:我们在移动端页面,上面有一张宽度 100% 的图片,如果我们没设置高度,则图片会根据原有尺寸,等比缩放。 我们可以借助这个想法,根据元素高度,来为元素设置一个相应比例的高度即可。 立即学习“前端免费学习笔记(深入)…

    2025年12月24日
    000
  • 详解css行内样式、内嵌样式与外部引用样式的使用方法

    三中的使用方法的简单实例如下: 行内样式: css行内样式> (推荐教程:CSS教程) 内嵌样式: css内嵌样式#div{width:100px;height:100px;background:red;}> 外部式: 立即学习“前端免费学习笔记(深入)”; css内嵌样式 > c…

    2025年12月24日
    000
  • css中有哪些方法可以实现垂直居中

    css实现垂直居中的方法如下: 1、利用line-height实现居中,这种方法适合纯文字类的; .parents { height: 400px; line-height: 400px; width: 400px; border: 1px solid red; text-align: center…

    2025年12月24日 好文分享
    000
  • css实现等高布局有哪些方式

    什么是等高布局? 指在同一个父容器中,子元素高度相等的布局。 从等高布局实现方式来说分为两类: 1、伪等高 子元素高度差依然存在,只是视觉上给人感觉就是等高。 立即学习“前端免费学习笔记(深入)”; 2、真等高 子元素高度相等。 伪等高实现方式: 通过负margin和Padding实现 真等高实现方…

    2025年12月24日
    000
  • css如何使用伪元素清除浮动

    什么是bfc? 块级格式化上下文,是一个独立的渲染区域,让处于 BFC 内部的元素与外部的元素相互隔离,使内外元素的定位不会相互影响。 我们先了解一个名词:BFC(block formatting context),中文为“块级格式化上下文”。 先记住一个原则:  如果一个元素具有BFC,那么内部元…

    2025年12月24日
    000
  • css中内容过长怎么解决

    大家在写css的时候,肯定有过忘记设计里面存在的临界的情况。举个例子来说吧,当内容的长度超过了我们的期望值,我们也无法解释其中的可能性,页面的设计很可能会因此而崩掉。我们不能保证css总是会按照我们期望的那样工作,但至少我们可以用不同类型的内容来测试,以减少这种情况的发生。 具体情况如下: 一个右侧…

    2025年12月24日
    000
  • 关于css中的类名问题的详细介绍

    以下以数字开头的 css 类名不会生效: .1st{ color: red;} 一个合法的 CSS 类名必需以下面其中之一作为开头: 1、下划线 _ 2、短横线 – 3、字母 a – z 立即学习“前端免费学习笔记(深入)”; 然后紧跟其他 _ , – 数字或字母…

    2025年12月24日
    000
  • css实现文本两端对齐的方法

    本篇文章介绍了使用css实现文本两端对齐的效果,具有一定的参考价值,感兴趣的朋友可以看看。 css实现文本两端对齐的方法 说起text-align,大家一定都不觉得陌生,我们常用关键字left、right、center实现行内元素相对父元素左、右、居中对齐,当然我们也使用justify来实现文本两端…

    2025年12月24日
    000
  • 如何改变css伪元素的样式

    本篇文章介绍了如何改变css伪元素样式的方法,希望对学习前端css的朋友有帮助! 一、CSS伪元素 CSS 伪元素用于向某些选择器设置特殊效果。 伪元素的用法如下: selector:pseudo-element {property:value;} CSS 类也可以和伪元素搭配使用 selector…

    2025年12月24日
    000
  • css实现文字过长显示省略号

    本篇文章介绍了css实现文字过长显示省略号的方法,具有一定的参考价值,希望对学习css的朋友有帮助! 一、CSS样式 解决文字过长显示省略号问题 1、一般样式 一般 css 样式,当宽度不够时,可能会出现换行的效果。这样的效果在某些时候肯定是不行的,可以修改 css 样式来解决这个问题。 text-…

    2025年12月24日 好文分享
    000

发表回复

登录后才能评论
关注微信