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 }
vue双向定位导航效果的更多相关文章
- JavaScript定位导航滚动2
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- 慕课网中网页定位导航中js相关问题总结
<!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title> ...
- jQuery实现网页定位导航
代码: <!doctype html> <html> <head> <meta charset="UTF-8"> <title ...
- vue 双向数据绑定的实现学习(二)- 监听器的实现
废话:上一篇https://www.cnblogs.com/adouwt/p/9928278.html 提到了vue实现的基本实现原理:Object.defineProperty() -数据劫持 和 ...
- css3圆环百分比,菜单栏定位导航
前段时间,社区个人中心改版,看了下设计图,当时隐约感觉到有两个地方(圆环百分比,菜单栏定位导航)比较麻烦.设计图大致如下: 首先看圆环百分比,网上的做法大致分两种,一种是用了CSS3中的transfo ...
- vue双向绑定的原理及实现双向绑定MVVM源码分析
vue双向绑定的原理及实现双向绑定MVVM源码分析 双向数据绑定的原理是:可以将对象的属性绑定到UI,具体的说,我们有一个对象,该对象有一个name属性,当我们给这个对象name属性赋新值的时候,新值 ...
- Vue双向绑定原理,教你一步一步实现双向绑定
当今前端天下以 Angular.React.vue 三足鼎立的局面,你不选择一个阵营基本上无法立足于前端,甚至是两个或者三个阵营都要选择,大势所趋. 所以我们要时刻保持好奇心,拥抱变化,只有在不断的变 ...
- Vue双向数据绑定原理分析(转)
add by zhj: 目前组里使用的是前端技术是jQuery + Bootstrap,后端使用的Django,Flask等,模板是在后端渲染的.前后端没有分离,这种做法有几个缺点 1. 模板一般是由 ...
- vue双向数据绑定最最最最最简单直观的例子
vue双向数据绑定最最最最最简单直观的例子 一.总结 一句话总结:双向绑定既不仅model可以影响view的数据,view也可以影响model的数据 view model 数据 1.vue双向数据绑定 ...
- [Vue源码]一起来学Vue双向绑定原理-数据劫持和发布订阅
有一段时间没有更新技术博文了,因为这段时间埋下头来看Vue源码了.本文我们一起通过学习双向绑定原理来分析Vue源码.预计接下来会围绕Vue源码来整理一些文章,如下. 一起来学Vue双向绑定原理-数据劫 ...
随机推荐
- C++ Qt开发:Qt的安装与配置
Qt是一种C++编程框架,用于构建图形用户界面(GUI)应用程序和嵌入式系统.Qt由Qt公司(前身为Nokia)开发,提供了一套跨平台的工具和类库,使开发者能够轻松地创建高效.美观.可扩展的应用程序. ...
- 使用nacos配置无效,原因:项目中 gateway服务配置的 application的name:@artifactId@ 和nacos上配置的DataID 不一致导致
遇到一个问题,项目启动后一致无法正常登陆进入后端,登陆时一直报错返回null,排查后发现是自己粗心,项目中 gateway服务配置的 application的name:@artifactId@ 和 ...
- 【eBPF-02】入门:基于 BCC 框架的程序进阶
本文是 eBPF 系列的第二篇文章,我们来学习 eBPF BCC 框架的进阶用法,对上一篇文章中的代码进行升级,动态输出进程运行时的参数情况. 主要内容包括: 通过 kprobe 挂载内核事件的 eB ...
- Hash-based Message Authentication Code(HMAC)
一.引言 在现代信息安全领域,消息认证码(Message Authentication Code,简称MAC)起着至关重要的作用.Hash-based Message Authentication C ...
- Android中使用Gson
Gson是一个Java库,可用于将Java对象转换为它们的JSON表示.它还可以用于将JSON字符串转换为等效的Java对象.Gson可以处理任意Java对象,包括您没有源代码的已有对象. 一.简单使 ...
- GO的逃逸分析
逃逸分析 前言 指的就是由编译器决定内存分配的位置,不需要由程序员来指定.函数中申请一个新的对象,其目的是为了提高程序的性能,减少内存分配和垃圾回收的开销. 分配在 栈 中, 则函数执行结束则可自动将 ...
- shell的变量
变量含义 学生时代所学的数学方程式,如x=1,y=2,那会称之为x,y是未知数 对于计算机角度,x=1,y=2等于定义了两个变量,名字分别是x,y,且赋值了1和2 变量是暂时存储数据的地方,变量临时存 ...
- vue-admin-template动态菜单后台获取菜单
vue-admin-template.vue-element-admin配置动态菜单,菜单数据从后台获取. 我在网上search了几个小时也没有找到想要的emm,翻官网也没有说明,只说明了路由覆盖.只 ...
- 元数据管理平台对比预研 Atlas VS Datahub VS Openmetadata
大家好,我是独孤风.元数据管理平台层出不穷,但目前主流的还是Atlas.Datahub.Openmetadata三家,那么我们该如何选择呢? 本文就带大家对比一下.要了解元数据管理平台,先要从架构说起 ...
- 使用XDT提高开发效率
使用XDT提高开发效率 XDT介绍 XDT(XML Document Transformation)技术是一种用于对XML文档进行转换的技术.它通常用于在部署或配置过程中,根据不同的环境或条件自动修改 ...