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双向绑定原理-数据劫 ...
随机推荐
- 【WCH以太网接口系列芯片】基于CH395的组播请求(IGMP)
在上一篇文章中,我们通过直连电脑测试了CH395在组播环境中进行数据的收发,但在实际的使用场景中更多的是将CH395接入局域网环境中.因此,我们需要使用到一个协议--IGMP(Internet Gro ...
- Reactor实战,创建一个简单的单线程Reactor(理解了就相当于理解了多线程的Reactor)
单线程Reactor package org.example.utils.echo.single; import java.io.IOException; import java.net.InetSo ...
- [ABC281G] Farthest City
Problem Statement You are given positive integers $N$ and $M$. Find the number, modulo $M$, of simpl ...
- KNN算法之KD树(K-dimension Tree)实现 K近邻查询
KD树是一种分割k维数据空间的数据结构,主要应用于多维空间关键数据的搜索,如范围搜索和最近邻搜索. KD树使用了分治的思想,对比二叉搜索树(BST),KD树解决的是多维空间内的最近点(K近点)问题.( ...
- 聊聊流式数据湖Paimon(一)
翻译自 Apache Paimon官方文档 概览 概述 Apache Paimon (incubating) 是一项流式数据湖存储技术,可以为用户提供高吞吐.低延迟的数据摄入.流式订阅以及实时查询能力 ...
- 华企盾DSC客户端服务无法启动一直处于启动停止状态
该问题有两种情况: 1.客户端安装有问题,5097目录缺少文件,解决方法见下面详细信息 2.客户端本地数据库出现问题,需要卸载客户端以及删除对应的本地数据库备份文件(解决方法见下面详细信息) 3.由于 ...
- 深入理解JavaScript堆栈、事件循环、执行上下文和作用域以及闭包
1. 堆栈 在JavaScript中,内存堆是内存分配的地方,调用栈是代码执行的地方. 原始类型的保存方式:在变量中保存的是值本身,所以原始类型也被称之为值类型. 对象类型的保存方式:在变量中保存的是 ...
- Docker本地部署Firefox火狐浏览器并远程访问
Docker本地部署Firefox火狐浏览器并远程访问 Firefox是一款免费开源的网页浏览器,由Mozilla基金会开发和维护.它是第一个成功挑战微软Internet Explorer浏览器垄断地 ...
- 斯坦福 UE4 C++ ActionRoguelike游戏实例教程 16.优化交互,实现看到物体时出现交互提示
斯坦福课程 UE4 C++ ActionRoguelike游戏实例教程 0.绪论 概述 本篇文章对应Lecture 18 – Creating Buffs, World Interaction, 73 ...
- 2022 IDC中国未来企业大奖优秀奖颁布,华为云数据库助力德邦快递获奖
摘要:华为云数据库助力德邦快递打造的"基于数智融合的一站式物流供应链平台"项目从500多个项目中脱颖而出,荣获2022 IDC中国未来企业大奖优秀奖"未来智能领军者&qu ...