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

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 }

vue双向定位导航效果的更多相关文章

  1. JavaScript定位导航滚动2

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  2. 慕课网中网页定位导航中js相关问题总结

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title> ...

  3. jQuery实现网页定位导航

    代码: <!doctype html> <html> <head> <meta charset="UTF-8"> <title ...

  4. vue 双向数据绑定的实现学习(二)- 监听器的实现

    废话:上一篇https://www.cnblogs.com/adouwt/p/9928278.html 提到了vue实现的基本实现原理:Object.defineProperty() -数据劫持 和  ...

  5. css3圆环百分比,菜单栏定位导航

    前段时间,社区个人中心改版,看了下设计图,当时隐约感觉到有两个地方(圆环百分比,菜单栏定位导航)比较麻烦.设计图大致如下: 首先看圆环百分比,网上的做法大致分两种,一种是用了CSS3中的transfo ...

  6. vue双向绑定的原理及实现双向绑定MVVM源码分析

    vue双向绑定的原理及实现双向绑定MVVM源码分析 双向数据绑定的原理是:可以将对象的属性绑定到UI,具体的说,我们有一个对象,该对象有一个name属性,当我们给这个对象name属性赋新值的时候,新值 ...

  7. Vue双向绑定原理,教你一步一步实现双向绑定

    当今前端天下以 Angular.React.vue 三足鼎立的局面,你不选择一个阵营基本上无法立足于前端,甚至是两个或者三个阵营都要选择,大势所趋. 所以我们要时刻保持好奇心,拥抱变化,只有在不断的变 ...

  8. Vue双向数据绑定原理分析(转)

    add by zhj: 目前组里使用的是前端技术是jQuery + Bootstrap,后端使用的Django,Flask等,模板是在后端渲染的.前后端没有分离,这种做法有几个缺点 1. 模板一般是由 ...

  9. vue双向数据绑定最最最最最简单直观的例子

    vue双向数据绑定最最最最最简单直观的例子 一.总结 一句话总结:双向绑定既不仅model可以影响view的数据,view也可以影响model的数据 view model 数据 1.vue双向数据绑定 ...

  10. [Vue源码]一起来学Vue双向绑定原理-数据劫持和发布订阅

    有一段时间没有更新技术博文了,因为这段时间埋下头来看Vue源码了.本文我们一起通过学习双向绑定原理来分析Vue源码.预计接下来会围绕Vue源码来整理一些文章,如下. 一起来学Vue双向绑定原理-数据劫 ...

随机推荐

  1. 如何在 PyQt 中实现异步数据库请求

    需求 开发软件的时候不可避免要和数据库发生交互,但是有些 SQL 请求非常耗时,如果在主线程中发送请求,可能会造成界面卡顿.这篇博客将会介绍一种让数据库请求变得和前端的 ajax 请求一样简单,且不会 ...

  2. SQL执行insert into后返回主键ID

    1 select @@identity 2 select SCOPE_IDENTITY() 3 select IDENT_CURRENT('table') 注解:@@IDENTITY 返回当前会话的所 ...

  3. Linux笔记02: Linux环境_2.1虚拟机软件VMware

    2.1 虚拟机软件VMware 如果直接在计算机上安装多个操作系统,同一个时刻只能运行一个操作系统,切换系统需重启计算机.VMware可以使用户在一台计算机上同时运行多个操作系统(如Windows.L ...

  4. c语言指针数组和数组指针

    1 #include<stdio.h> 2 #include<iostream> 3 using namespace std; 4 int main(){ 5 int a[2] ...

  5. JavaFx之ScrollPane滚动板面、CheckBox复选框(二十四)

    JavaFx之ScrollPane滚动板面.CheckBox复选框(二十四) 多个复选框时可能会超出屏幕,需要使用滚动版面. 布局方式:ScrollPane包括VBox.VBox 包括多个 Check ...

  6. 最大伪森林——kruskal算法活用 (HDU - 3367)

    最大伪森林--kruskal算法活用 (HDU - 3367) kruskal这一用来求生成树的算法,经过修改拓展之后,可以求很多种形式的子图,本题(HDU3367)即为一个应用案例 单击进入原题 以 ...

  7. 3、Container容器组件

    Container容器组件 代码 import 'package:flutter/material.dart'; void main() {   runApp(MaterialApp(     hom ...

  8. 小熊派开发实践丨漫谈LiteOS之传感器移植

    摘要:本文基于小熊派开发板简单介绍了如何在LiteOS中移植传感器,从而实现对于传感器的相关控制. 1 hello world 相信大家无论在学习编程语言开始的第一个函数应该是HelloWorld,本 ...

  9. 打破联接壁垒,华为云IoT到底强在哪

    摘要:先哲说,万物莫不相异,而在今天,万物也可相通. 本文分享自华为云社区<打破联接壁垒,华为云IoT到底强在哪?>,作者:华为IoT云服务. "凡物莫不相异", 是十 ...

  10. 关于单元测试的那些事儿,Mockito 都能帮你解决

    摘要:相信每一个程序猿在写Unit Test的时候都会碰到一些令人头疼的问题:如何测试一个rest接口:如何测试一个包含客户端调用服务端的复杂方法:如何测试一个包含从数据库读取数据的复杂方法...这些 ...