zoukankan      html  css  js  c++  java
  • vue双向定位导航效果

    需求:实现双向定位导航效果,点击左侧菜单,右侧滚动到相应的位置。滚动右边,左侧相应菜单高亮。

    html代码:

     1 <ul class="EntTake_main_left" :class="{ 'fixed-menu': fixedMenu }">
     2   <li
     3     class="forensics-main-item nav1"
     4     v-for="(val, index) in menuList"
     5     :key="index"
     6     :class="menuClickIndex === index ? 'clickStyle' : ''"
     7     @click="clickMenu(index)"
     8   >
     9     {{ val }}
    10   </li>
    11 </ul>

    data里定义数据:

    isFixed: false,
    fixedMenu: false,
    scrollTop: 0,
    menuList: [
        '课程信息',
        '课程及收费依据',
        '报名政策',
        '所需材料信息',
        '培训流程',
        '证书样本',
        '常见问题'
    ],
    menuClickIndex: 0,

    js中代码:

     1 methods: {
     2   // 点击左侧菜单
     3    clickMenu(index) {
     4       this.menuClickIndex = index;
     5        const jump = document.querySelectorAll('.section');
     6        const total = jump[index].offsetTop - 76;
     7        document.body.scrollTop = total;
     8        document.documentElement.scrollTop = total;
     9    },
    10    dataScroll() {
    11        this.scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
    12        if (this.scrollTop && this.scrollTop > 260) {
    13            this.fixedMenu = true;
    14        } else {
    15            this.fixedMenu = false;
    16        }
    17        this.isFixed = this.scrollTop > 258;
    18    },
    19    loadScroll() {
    20        const sections = document.querySelectorAll('.section');
    21        sections.forEach((item, index) => {
    22            if (this.scrollTop >= item.offsetTop - 200) {
    23                this.menuClickIndex = index;
    24            }
    25        });
    26    }
    27 },
    28  mounted() {
    29     window.addEventListener('scroll', this.dataScroll);
    30  },
    31  watch: {
    32    scrollTop() {
    33       this.loadScroll();
    34    }
    35  },
    36  destroyed() {
    37     window.removeEventListener('scroll', this.dataScroll, false);
    38  }
  • 相关阅读:
    变量的创建和初始化
    HDU 1114 Piggy-Bank (dp)
    HDU 1421 搬寝室 (dp)
    HDU 2059 龟兔赛跑 (dp)
    HDU 2571 命运 (dp)
    HDU 1574 RP问题 (dp)
    HDU 2577 How to Type (字符串处理)
    HDU 1422 重温世界杯 (dp)
    HDU 2191 珍惜现在,感恩生活 (dp)
    HH实习 acm算法部 1689
  • 原文地址:https://www.cnblogs.com/guwufeiyang/p/13112062.html
Copyright © 2011-2022 走看看