iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >vue实现三级导航展示和隐藏
  • 895
分享到

vue实现三级导航展示和隐藏

2024-04-02 19:04:59 895人浏览 八月长安
摘要

本文实例为大家分享了Vue实现三级导航展示和隐藏的具体代码,供大家参考,具体内容如下 需求描述: 要实现侧边栏三级导航的显示和隐藏。点击其中一个一级导航,展示该一级导航的二级导航,再

本文实例为大家分享了Vue实现三级导航展示和隐藏的具体代码,供大家参考,具体内容如下

需求描述:

要实现侧边栏三级导航的显示和隐藏。点击其中一个一级导航,展示该一级导航的二级导航,再点击关闭该二级导航。一级导航的其他项,展开二级导航。关闭其他一级导航的二级导航。

效果如下:

代码:


<template>
  <div id="app">
    <img alt="Vue loGo" src="./assets/logo.png" />
    <HelloWorld msg="Welcome to Your vue.js App" />
    <div class="first" v-for="(item, key) in navLists" :key="key">
      <li>
        <span @click="handleClick(key)"> {{ item.title }}</span>
        <div
          v-for="(item2, key2) in item.child"
          :key="key2"
          class="second"
          v-show="show2 && currIndex == key"
        >
          <p @click="secondClick(key2)">{{ item2.subTitle }}</p>
          <div
            v-for="(item3, key3) in item2.threeChild"
            :key="key3"
            class="three"
           v-show="show3 && currIndex2 == key2"
          >
            {{ item3.threeTitle }}
          </div>
        </div>
      </li>
    </div>
  </div>
</template>
 
<script>
import HelloWorld from "./components/HelloWorld.vue";
 
export default {
  name: "App",
  components: {
    HelloWorld,
  },
  data() {
    return {
      i: 0,
 
      show3: false,
      show2: false,
      navLists: [
        {
          title: "项目信息",
          child: [
            {
              subTitle: "项目简介",
              esubTitle: "#projectIntroduction",
              threeChild: [
                { threeTitle: "三级导航" },
                { threeTitle: "三级导航" },
                { threeTitle: "三级导航" },
              ],
            },
            {
              subTitle: "样品信息",
              threeChild: [
                { threeTitle: "三级导航22" },
                { threeTitle: "三级导航22" },
                { threeTitle: "三级导航22" },
              ],
            },
 
            {
              subTitle: "样品信息",
              threeChild: [
                { threeTitle: "三级导航33" },
                { threeTitle: "三级导航33" },
                { threeTitle: "三级导航33" },
              ],
            },
          ],
        },
        {
          title: "项目信息2",
          child: [
            {
              subTitle: "项目简介22",
              threeChild: [
                { threeTitle: "三级导航44" },
                { threeTitle: "三级导44" },
                { threeTitle: "三级导航22" },
              ],
            },
            {
              subTitle: "样品信息22",
            },
          ],
        },
        {
          title: "项目信息3",
          eTitle: "#projectMessage",
          child: [
            {
              subTitle: "项目简介33",
              esubTitle: "#projectIntroduction",
            },
            {
              subTitle: "样品信息33",
              esubTitle: "#sampleInfORMation",
            },
          ],
        },
        {
          title: "项目信息2",
          child: [
            {
              subTitle: "项目简介22",
            },
            {
              subTitle: "样品信息22",
            },
          ],
        },
        {
          title: "项目信息3",
          child: [
            {
              subTitle: "项目简介33",
            },
            {
              subTitle: "样品信息33",
            },
          ],
        },
      ],
 
      currIndex: "", //当前索引
      spanIndex: [], //索引数组
      arrIndex: "", //用于判断是否做索引数组找到当前索引。-1为找不到,0找到了。
 
      currIndex2: "", //二级导航当前索引
      spanIndex2: [], //索引数组
      arrIndex2: "", //用于判断是否做索引数组找到当前索引。-1为找不到,0找到了。
    };
  },
  methods: {
    handleClick(index) {
      // 初始化三级导航,默认不显示。
      this.show3 =false;
      this.spanIndex2.splice(-1, 1);
 
      // 当前索引=index
      this.currIndex = index;
      console.log("当前索引index", index);
      // 判断当前索引是否在索引数组spanIndex中。arrIndex的值只有两种结果,-1未找到。0找到了。
      this.arrIndex = this.spanIndex.indexOf(index);
      console.log("arrIndex", this.arrIndex);
 
      if (this.arrIndex == 0) {
        //arrIndex ==0,找到索引了,在索引数组spanIndex删除该索引,隐藏二级导航。
        this.spanIndex.splice(this.arrIndex, 1);
        this.show2 = false;
      } else {
        // arrIndex ==-1,没有找到,splice(-1,1)从spanIndex数组结尾处删除1个值,并将当前索引添加到索引数组spanIndex,show2为true,展示二级导航,
        this.spanIndex.splice(this.arrIndex, 1);
        this.spanIndex.push(index);
        this.show2 = true;
      }
      
      console.log("索引数组", this.spanIndex);
    },
 
    secondClick(index) {
      console.log(index);
      // 当前索引=index
      this.currIndex2 = index;
      // 判断当前索引是否在索引数组spanIndex中。arrIndex的值只有两种结果,-1未找到。0找到了。
      this.arrIndex2 = this.spanIndex2.indexOf(index);
      console.log("arrIndex2", this.arrIndex2);
 
      if (this.arrIndex2 == 0) {
        //arrIndex ==0,找到索引了,在索引数组spanIndex删除该索引,隐藏二级导航。
        this.spanIndex2.splice(this.arrIndex2, 1);
        this.show3 = false;
      } else {
        // arrIndex ==-1,没有找到,splice(-1,1)从spanIndex数组结尾处删除1个值,并将当前索引添加到索引数组spanIndex,show2为true,展示二级导航,
        this.spanIndex2.splice(this.arrIndex2, 1);
        this.spanIndex2.push(index);
        this.show3 = true;
      }
       console.log("索引数组2", this.spanIndex2);
    },
  },
};
</script>
 
<style>
p {
  padding: 5px 0;
  margin-block-start: 0;
  margin-block-end: 0;
}
#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -WEBkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
.first {
  width: 200px;
  font-size: 24px;
  font-weight: bold;
  
  
}
.first:hover {
  cursor: pointer;
 
  
}
.second {
  font-size: 18px;
  font-weight: normal;
  background: #eee;
  margin-left: 50px;
}
.three {
  background: yellow;
  margin-left: 20px;
  font-size: 14px;
}
</style>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: vue实现三级导航展示和隐藏

本文链接: https://www.lsjlt.com/news/134063.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • vue实现三级导航展示和隐藏
    本文实例为大家分享了vue实现三级导航展示和隐藏的具体代码,供大家参考,具体内容如下 需求描述: 要实现侧边栏三级导航的显示和隐藏。点击其中一个一级导航,展示该一级导航的二级导航,再...
    99+
    2024-04-02
  • js+css实现三级导航菜单
    本文实例为大家分享了js+css实现三级导航菜单的具体代码,供大家参考,具体内容如下 导航菜单hover事件用css实现相对容易,只需要将透明度更改即可,如果想要菜单有一个渐变的效果...
    99+
    2024-04-02
  • Android实现第三方登录的上拉展开,下拉隐藏,下拉隐藏示例
    Android的UI和交互是很重要的一部分,直接影响到用户对软件的体验。随着项目经验的积累,发现Android中动画的运用越来越重要。本篇文章抽出了项目登录界面中实现的第三方登录,用户可以上拉展开,下拉隐藏第三方登录这么一个效果,提高用户和...
    99+
    2023-05-31
    android 下拉展开 第三
  • 浅析php怎么实现滚动隐藏导航(代码示例)
    在网页设计中,导航栏是网页的一个重要组成部分之一,其作用是方便用户访问不同页面和功能。然而,对于一些需要保持页面美观性和简洁性的项目,通常会采用滚动隐藏导航。这种技术既可以改善用户体验,也可以节省页面空间。在本文中,将分享一些基于PHP语言...
    99+
    2023-05-14
  • 如何用CSS实现三级导航菜单
    这篇文章主要讲解了“如何用CSS实现三级导航菜单”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何用CSS实现三级导航菜单”吧!这是一款CSS导航菜单,三级...
    99+
    2024-04-02
  • vue实现动态控制el-table表格列的展示与隐藏
    本文实例为大家分享了vue动态控制el-table表格列的展示与隐藏的具体代码,供大家参考,具体内容如下 1.引入el-table组件,这里我直接用官网的示例代码 <templ...
    99+
    2024-04-02
  • Android实现密码隐藏和显示
    本文实例为大家分享了Android实现密码隐藏和显示的具体代码,供大家参考,具体内容如下 在Android开发中,需要密码的隐藏和显示,下面就和大家分享一下使用方法: xml代码: ...
    99+
    2022-11-13
    Android密码隐藏 Android密码显示 Android密码隐藏显示
  • JavaScript实现显示和隐藏图片
    JavaScript之显示和隐藏图片,供大家参考,具体内容如下 点击按钮可以显示和隐藏图片(默认显示),附上代码: <!DOCTYPE html> <html ...
    99+
    2024-04-02
  • Vue实现动态路由导航的示例
    目录1、导航守卫二、功能展示 三、原理四、功能实现⛵小结1、导航守卫 “导航” 表示路由正在发生改变 正如其名,vue-router 提供的导航守卫...
    99+
    2023-02-24
    Vue 动态路由导航 Vue 路由导航
  • Vue实现动态控制表格列的显示和隐藏
    本文实例为大家分享了Vue实现动态控制表格列的显示和隐藏的具体代码,供大家参考,具体内容如下 效果如图: 表头标题是重复的、为了能看到滚动效果 v-if=“lists[...
    99+
    2024-04-02
  • jQuery实现HTML元素隐藏和显示
    让我们来模仿一下淘宝网当你搜索某个商品的时候,那种显示全部品牌和显示部分品牌的功能。 首先我们来理清一下思路: 1、一开始需要先隐藏需要隐藏的元素 2、你需要通过jquery获取需要...
    99+
    2024-04-02
  • css实现显示和隐藏的方法
    今天小编给大家分享的是css实现显示和隐藏的方法,相信很多人都不太了解,为了让大家更加了解,所以给大家总结了以下内容,一起往下看吧。一定会有所收获的哦。css是什么意思css是一种用来表现HTML或XML等文件样式的计算机语言,主要是用来设...
    99+
    2023-06-14
  • vue+elementui实现动态控制表格列的显示和隐藏
    vue+elementui(table,多选框)实现动态控制表格列的显示和隐藏,供大家参考,具体内容如下 imdex.vue <template>   <div&g...
    99+
    2024-04-02
  • vue如何实现密码显示隐藏功能
    这篇文章给大家分享的是有关vue如何实现密码显示隐藏功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。效果:思路:利用input的type属性,当type值是text的时候展示密码,当type值是password...
    99+
    2023-06-14
  • element实现二级菜单和顶部导航联动的示例
    目前 原本数据结构 const users = [{ id: 1, username: 'normal', password: 'normal', token: '...
    99+
    2024-04-02
  • Vue 编程式路由导航的实现示例
    目录router- link的replace属性编程式路由导航缓存路由组件两个新的生命钩子router- link的replace属性 1.作用:控制路由跳转时操作浏览器历史记录的模...
    99+
    2024-04-02
  • Electron怎么实现应用显示隐藏时展示动画效果
    今天小编给大家分享一下Electron怎么实现应用显示隐藏时展示动画效果的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。最终效...
    99+
    2023-06-30
  • JQuery实现隐藏和显示动画效果
    本文为大家分享了JQuery实现隐藏和显示动画效果的具体代码,供大家参考,具体内容如下 隐藏和显示 语法 $(selector).fadeIn([speed,callbac...
    99+
    2024-04-02
  • vue实现四级导航及验证码的方法实例
    实现效果:  首先创建五个vue界面 1.home.vue页面 <template> <div id="home-wrapper"> ...
    99+
    2024-04-02
  • Vue怎么实现动态控制表格列的显示和隐藏
    本篇内容介绍了“Vue怎么实现动态控制表格列的显示和隐藏”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!效果如图:表头标题是重复的、为了能看到...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作