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  }
  • 相关阅读:
    可以让你少奋斗十年的工作经验 .
    MFC多线程编的可能
    MFC中使用ADO方式连接数据库
    vc 获取当前时间
    mfc EDIT字体颜色
    使用css让div半透明
    -----日积月累-----
    TP框架 ---空控制器和空操作
    TP框架常用配置
    TP框架主要文件夹注释
  • 原文地址:https://www.cnblogs.com/guwufeiyang/p/13112062.html
Copyright © 2011-2022 走看看