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

 更新时间:2023年01月11日 09:04:55   作者:JL  
这篇文章主要介绍了JS写常用导航鼠标下经过下方横线自动跟随效果,文中还给大家讲解了基于css + 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;
    }
  },

到此这篇关于JS写常用导航鼠标下经过下方横线自动跟随的文章就介绍到这了,更多相关js导航鼠标自动跟随内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 微信小程序进入广告实现代码实例

    微信小程序进入广告实现代码实例

    这篇文章主要介绍了微信小程序进入广告实现代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • JS使用Dijkstra算法求解最短路径

    JS使用Dijkstra算法求解最短路径

    这篇文章主要为大家详细介绍了JS使用Dijkstra算法求解最短路径,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • TypeScript创建一个简单Web应用

    TypeScript创建一个简单Web应用

    这篇文章主要为大家介绍了TypeScript创建一个简单Web应用,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • javaScript实现复选框全选反选事件详解

    javaScript实现复选框全选反选事件详解

    这篇文章主要为大家详细介绍了javaScript实现复选框全选反选事件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09
  • 详解小程序input框失焦事件在提交事件前的处理

    详解小程序input框失焦事件在提交事件前的处理

    这篇文章主要介绍了详解小程序input框失焦事件在提交事件前的处理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • javascript 短路法代码精简

    javascript 短路法代码精简

    简化IF-ELSE 高效,但请灵活使用
    2009-08-08
  • JS排序算法之希尔排序与快速排序实现方法

    JS排序算法之希尔排序与快速排序实现方法

    这篇文章主要介绍了JS排序算法之希尔排序与快速排序实现方法,结合实例形式分析了希尔排序与快速排序的原理及javascript实现技巧,需要的朋友可以参考下
    2017-12-12
  • javascript文件加载管理简单实现方法

    javascript文件加载管理简单实现方法

    这篇文章主要介绍了javascript文件加载管理简单实现方法,可实现顺序加载所有js文件的功能,非常简单实用,需要的朋友可以参考下
    2015-07-07
  • JS实现拖动滚动条评分的效果代码分享

    JS实现拖动滚动条评分的效果代码分享

    本文给大家基于js实现拖动滚动条评分效果,在项目开发中经常可以用到的,大家可以更加需要适当的添加修改,对js评分效果感兴趣的朋友一起看看吧
    2016-09-09
  • 微信小程序开发的四十个技术窍门总结(推荐)

    微信小程序开发的四十个技术窍门总结(推荐)

    这篇文章主要给大家介绍了微信小程序开发的四十个技术窍门的相关资料,相信对大家的学习或者使用微信小程序具有一定的参考借鉴价值,所以特别推荐给大家,需要的朋友们可以一起来看看吧。
    2017-01-01

最新评论