JS实现常用导航鼠标下经过下方横线自动跟随效果
作者:JL 发布时间:2024-04-17 10:11:55
标签: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
滑动效果
下划线会跟随这鼠标滑动,并且激活的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


猜你喜欢
- 前言在这个教程中,我们将会通过几个例子,了解和学习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