最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue實現(xiàn)三級導航展示和隱藏

 更新時間:2021年08月31日 17:27:25   作者:吳小花的博客  
這篇文章主要為大家詳細介紹了vue實現(xiàn)三級導航展示和隱藏,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了vue實現(xiàn)三級導航展示和隱藏的具體代碼,供大家參考,具體內容如下

需求描述:

要實現(xiàn)側邊欄三級導航的顯示和隱藏。點擊其中一個一級導航,展示該一級導航的二級導航,再點擊關閉該二級導航。一級導航的其他項,展開二級導航。關閉其他一級導航的二級導航。

效果如下:

代碼:

<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: [], //索引數(shù)組
      arrIndex: "", //用于判斷是否做索引數(shù)組找到當前索引。-1為找不到,0找到了。
 
      currIndex2: "", //二級導航當前索引
      spanIndex2: [], //索引數(shù)組
      arrIndex2: "", //用于判斷是否做索引數(shù)組找到當前索引。-1為找不到,0找到了。
    };
  },
  methods: {
    handleClick(index) {
      // 初始化三級導航,默認不顯示。
      this.show3 =false;
      this.spanIndex2.splice(-1, 1);
 
      // 當前索引=index
      this.currIndex = index;
      console.log("當前索引index", index);
      // 判斷當前索引是否在索引數(shù)組spanIndex中。arrIndex的值只有兩種結果,-1未找到。0找到了。
      this.arrIndex = this.spanIndex.indexOf(index);
      console.log("arrIndex", this.arrIndex);
 
      if (this.arrIndex == 0) {
        //arrIndex ==0,找到索引了,在索引數(shù)組spanIndex刪除該索引,隱藏二級導航。
        this.spanIndex.splice(this.arrIndex, 1);
        this.show2 = false;
      } else {
        // arrIndex ==-1,沒有找到,splice(-1,1)從spanIndex數(shù)組結尾處刪除1個值,并將當前索引添加到索引數(shù)組spanIndex,show2為true,展示二級導航,
        this.spanIndex.splice(this.arrIndex, 1);
        this.spanIndex.push(index);
        this.show2 = true;
      }
      
      console.log("索引數(shù)組", this.spanIndex);
    },
 
    secondClick(index) {
      console.log(index);
      // 當前索引=index
      this.currIndex2 = index;
      // 判斷當前索引是否在索引數(shù)組spanIndex中。arrIndex的值只有兩種結果,-1未找到。0找到了。
      this.arrIndex2 = this.spanIndex2.indexOf(index);
      console.log("arrIndex2", this.arrIndex2);
 
      if (this.arrIndex2 == 0) {
        //arrIndex ==0,找到索引了,在索引數(shù)組spanIndex刪除該索引,隱藏二級導航。
        this.spanIndex2.splice(this.arrIndex2, 1);
        this.show3 = false;
      } else {
        // arrIndex ==-1,沒有找到,splice(-1,1)從spanIndex數(shù)組結尾處刪除1個值,并將當前索引添加到索引數(shù)組spanIndex,show2為true,展示二級導航,
        this.spanIndex2.splice(this.arrIndex2, 1);
        this.spanIndex2.push(index);
        this.show3 = true;
      }
       console.log("索引數(shù)組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;
  /* height: 60px; */
  /* background:red; */
}
.first:hover {
  cursor: pointer;
 
  /* color:red; */
}
.second {
  font-size: 18px;
  font-weight: normal;
  background: #eee;
  margin-left: 50px;
}
.three {
  background: yellow;
  margin-left: 20px;
  font-size: 14px;
}
</style>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • vue使用transition組件動畫效果的實例代碼

    vue使用transition組件動畫效果的實例代碼

    這篇文章主要介紹了vue使用transition組件動畫效果的實例代碼,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • vue項目如何部署運行到tomcat上

    vue項目如何部署運行到tomcat上

    這篇文章主要介紹了vue項目如何部署運行到tomcat上的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • VueX瀏覽器刷新如何實現(xiàn)保存數(shù)據(jù)

    VueX瀏覽器刷新如何實現(xiàn)保存數(shù)據(jù)

    這篇文章主要介紹了VueX瀏覽器刷新如何實現(xiàn)保存數(shù)據(jù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • vue之debounce屬性被移除及處理詳解

    vue之debounce屬性被移除及處理詳解

    今天小編就為大家分享一篇vue之debounce屬性被移除及處理詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • vue如何使用pdf.js實現(xiàn)在線查看pdf文件功能

    vue如何使用pdf.js實現(xiàn)在線查看pdf文件功能

    PDF.js是一個開源的JavaScript庫,用于在網(wǎng)頁上渲染和顯示PDF文件,在Vue中使用PDF.js來預覽PDF文件是很常見的需求,這篇文章主要給大家介紹了關于vue如何使用pdf.js實現(xiàn)在線查看pdf文件功能的相關資料,需要的朋友可以參考下
    2024-03-03
  • vue3通過render函數(shù)實現(xiàn)菜單下拉框的示例

    vue3通過render函數(shù)實現(xiàn)菜單下拉框的示例

    本文主要介紹了vue3通過render函數(shù)實現(xiàn)菜單下拉框的示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-04-04
  • vue3.x項目降級到vue2.7的解決方案

    vue3.x項目降級到vue2.7的解決方案

    Vue2.7是Vue2.x的最終次要版本,下面這篇文章主要給大家介紹了關于vue3.x項目降級到vue2.7的解決方案,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-03-03
  • vue3?使用provide?inject父子組件傳值失敗且子組件不響應

    vue3?使用provide?inject父子組件傳值失敗且子組件不響應

    這篇文章主要介紹了vue3使用provide?inject父子組件傳值傳不過去且傳遞后子組件不具備響應性問題解決方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • vue3在jsx中使用component組件方式

    vue3在jsx中使用component組件方式

    這篇文章主要介紹了vue3在jsx中使用component組件方式,具有很好的 參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • vue實現(xiàn)循環(huán)切換動畫

    vue實現(xiàn)循環(huán)切換動畫

    這篇文章主要為大家詳細介紹了vue實現(xiàn)循環(huán)切換動畫,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-10-10

最新評論

琼中| 蓬溪县| 台南市| 浑源县| 韶关市| 北票市| 曲麻莱县| 光泽县| 英山县| 张家川| 黄浦区| 兰坪| 吴堡县| 荔浦县| 和田县| 周口市| 沁阳市| 高青县| 彝良县| 扶风县| 玉山县| 齐齐哈尔市| 甘南县| 梨树县| 玛多县| 洞口县| 界首市| 财经| 资兴市| 汉中市| 徐闻县| 麦盖提县| 阿拉善左旗| 南开区| 玛多县| 乐平市| 额尔古纳市| 自治县| 永丰县| 红桥区| 滦南县|