温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Css和JS如何实现下划线动效

发布时间:2021-03-22 11:33:51 阅读:233 作者:小新 栏目:web开发
前端开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

小编给大家分享一下Css和JS如何实现下划线动效,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

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

x轴由内向外展开

Css和JS如何实现下划线动效

利用贝塞尔曲线利用横线的动画实现,具体代码如下:

ul {
  display: flex;
  padding0;
  margin0;
  list-style-type: none;
}
ul:hover li:not(:hovera {
  opacity0.2;
}
ul li {
  position: relative;
  padding30px 25px 30px 25px;
  cursor: pointer;
}
ul li::after {
  position: absolute;
  content"";
  top100%;
  left0;
  width100%;
  height2px;
  background#3498db;
  transformscaleX(0);
  transition0.4s cubic-bezier(0.1650.840.441);
}
ul li:hover::afterul li.active::after {
  transformscaleX(1);
}

左右横移下划线动画特效

Css和JS如何实现下划线动效

主要利用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-weight600;
  text-decoration: none;
  colorrgba(0000.4);
  transition: color .3s ease;
}
a::after {
  --scale0;
  content'';
  position: absolute;
  left0;
  right0;
  top100%;
  height3px;
  background#4c81c9;
  -webkit-transformscaleX(var(--scale));
          transformscaleX(var(--scale));
  -webkit-transform-originvar(--x) 50%;
          transform-originvar(--x) 50%;
  transition: -webkit-transform 0.3s cubic-bezier(0.5350.050.3551);
  transition: transform 0.3s cubic-bezier(0.5350.050.3551);
  transition: transform 0.3s cubic-bezier(0.5350.050.3551), -webkit-transform 0.3s cubic-bezier(0.5350.050.3551);
}
a:hover {
  color#4c81c9;
}
a:hover::after {
  --scale1;
}

看完了这篇文章,相信你对“Css和JS如何实现下划线动效”有了一定的了解,如果想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

原文链接:https://www.jb51.net/css/712013.html

AI

开发者交流群×