网络编程
位置:首页>> 网络编程>> JavaScript>> JS实现常用导航鼠标下经过下方横线自动跟随效果

JS实现常用导航鼠标下经过下方横线自动跟随效果

作者:JL  发布时间:2024-04-17 10:11:55 

标签:js,导航,自动跟随

js写常用导航鼠标下经过下方横线自动跟随

JS实现常用导航鼠标下经过下方横线自动跟随效果

html代码如下:

<div class="header">
   <ul class="nav fr">
       <li class="nav-item nav-line">
           <a href="/" class="nav-link">首页</a>
       </li>
       <li class="nav-item nav-line">
           <a href="/" class="nav-link">公司介绍</a>
       </li>
       <li class="nav-item nav-line">
           <a href="/" class="nav-link">产品及解决方案</a>
       </li>
       <li class="nav-item nav-line">
           <a href="/" class="nav-link">客户案例</a>
       </li>
       <li class="nav-item nav-line">
           <a href="/" class="nav-link">联系我们</a>
       </li>
   </ul>
   <div class="wrap-line" style="opacity:0"></div>
</div>

css代码如下:

.header{position: absolute; height: 60px; top: 0; left: 0;  right: 0; color: #fff;background: rgba(0,0,0,.3); }
.header ul{ padding: 0; margin: 0;}
.header .nav-item{ padding: 0 20px; display: inline-block;}
.header .nav-item a{ text-decoration: none;}
.header .nav-item .nav-link, .header .nav-item:hover .nav-link {color: #fff;}
.header .nav-item .nav-link{ padding: 0; font-size: 15px; height: 60px; line-height: 60px;}
.wrap-line{ display: block; position: absolute; height: 3px; bottom: 5px;  background: #fff;}

js代码如下:

<script src="jquery.min.js"></script>
<script>
// 导航滑动效果
   $(function () {
       $('.nav .nav-line').hover(function() {
           $('.wrap-line').stop().animate({
               left: $(this).position().left + 25,
               width: $(this).outerWidth() - 50,
               opacity: 1
           });
       }, function() {
           $('.wrap-line').stop().animate({
               opacity: 0
           });
       });
   })
</script>

PS:css + js 实现导航栏下划线跟随鼠标滑动效果

一个vue导航栏下划线跟随鼠标滑动的效果,纯 js + css

JS实现常用导航鼠标下经过下方横线自动跟随效果

滑动效果

下划线会跟随这鼠标滑动,并且激活的item下划线会消失

最终代码

<div class="cc">
     <div class="aa_box" ref="aa" @mouseleave="handleMouseLeave">
       <div
         class="aa_item"
         v-for="(i, index) in navList"
         :key="i"
         @click="aaBtn(index)"
         @mouseenter="handleMouseEnter(index)"
         :class="{ active: index == activeIndex || moveActiveIndex == index }"
       >
         {{ i }}
       </div>
     </div>
     <div class="aa-line" :style="{ left: handleX + 'px' }"></div>
   </div>
data() {
   return {
     activeIndex: 0,
     moveActiveIndex: null,
     X: 0,
     current: 0,
     aa_x: 0,
     mouse_x: 0,
     isMove: false
   };
 },
 computed: {
   handleX() {
     return this.isMove ? this.mouse_x : this.aa_x;
   }
 },
 methods: {
   aaBtn(index) {
     this.activeIndex = index;
     this.aa_x = this.handleMouver(index);
   },
   handleMouseEnter(index) {
     this.isMove = true;
     this.moveActiveIndex = index;
     this.mouse_x = this.handleMouver(index);
   },
   handleMouseLeave() {
     this.isMove = false;
     this.mouse_x = 0;
     this.moveActiveIndex = null;
   },
   handleMouver(index) {
     const aa = this.$refs["aa"].children;
     let num = 0;
     for (let i = 0; i < aa.length; i++) {
       const item = aa[i];
       if (i + 1 <= index) {
         const itemWidth = item.clientWidth + 50;
         num += itemWidth;
       }
     }
     return num;
   }
 },

来源:https://www.cnblogs.com/moranjl/p/16699702.html

0
投稿

猜你喜欢

  • 前言在这个教程中,我们将会通过几个例子,了解和学习VueJs的过滤器。阅读这这篇文中的前提是你对Vue已经有了基本的语法基础。Vue.Js中
  • 很多的朋友一而再,再而三的在Server.Mappath上卡壳,cnbruce也是一遍两遍地重复,还是不能全部解决,所以通过下面的举例,希望
  • 原理请查看前面几篇文章。1、数据源SH600519.csv 是用 tushare 模块下载的 SH600519 贵州茅台的日 k 线数据,本
  • 用yum更新PHP,只需用一条命令就可以搞定: #yum update php 但问题来了,使用此命令后,系统告诉我,没有发现可更新的包。而
  • element upload上传带参数<el-button style="margin-left: 10px;"
  • MyISAM 是MySQL中默认的存储引擎,一般来说不是有太多人关心这个东西。决定使用什么样的存储引擎是一个很tricky的事情,但是还是值
  • 虽然现在有许多网页制作工具能让您轻松地完成工作,但如果使用HTML则可以得到更大控制权,下面介绍几个小技巧。1.使用语句来控制文字排版比用好
  • xlrd主要用于读取Excel文件,本文为大家分享了python处理Excel的具体代码,供大家参考,具体内容如下安装pip install
  • 阅读上一篇:FrontPage2002简明教程五:css样式表的应用 用户可以快速和容易地创建图片库,以显示图片或图像。他们可以将图像添加到
  • 本文实例讲述了Python排序搜索基本算法之希尔排序。分享给大家供大家参考,具体如下:希尔排序是插入排序的扩展,通过允许非相邻的元素进行交换
  • 一、贝叶斯分类介绍贝叶斯分类器是一个统计分类器。它们能够预测类别所属的概率,如:一个数据对象属于某个类别的概率。贝叶斯分类器是基于贝叶斯定理
  • 目录一、建立画布二、用plt.subplot函数建立坐标系,并分别绘制折线图和柱状图三、完整代码如下所示四、对应效果图如下所示一、建立画布i
  • 这个需求是产品提的,一开始只是设置了 <input style="padding-top: 3px;" type=
  • 本篇文档旨在介绍如何安装配置基于2台服务器的MySQL集群。并且实现任意一台服务器出现问题或宕机时MySQL依然能够继续运行。注意!虽然这是
  • 前言在诸多的管理类,办公类等系统中,树形结构展示随处可见,以“部门”或"机构"来说,接触过的同学应该都知道,最终展示到页
  • 1.cURL介绍 cURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP、FTP、TELNET等。最爽的是,PH
  • MySql5.0以后均支持存储过程,最近有空,研究了一把这个。格式:以下为引用的内容:CREATE PROCEDURE 
  • 1:文件内容格式为json的数据如何解析import json,os,syscurrent_dir=os.path.abspath(&quo
  • 本文实例讲述了Go语言实现socket的方法。分享给大家供大家参考。具体分析如下:用golang不用他的net包还有什么意义,这里提供一个测
  • 在ASP中,如何创建DSN?    见下:<HTML><HEAD><META&n
手机版 网络编程 asp之家 www.aspxhome.com