前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >vue+element锚点跳转+自动感应导航栏

vue+element锚点跳转+自动感应导航栏

作者头像
Healers
发布2022-04-24 14:10:00
1.9K0
发布2022-04-24 14:10:00
举报
文章被收录于专栏:日常问题日常问题

最近来个需求,要做一个页面,每个模块都是百分百全屏且右侧有个导航栏能自动感应在哪个模块,点击也能直接跳转到该锚点。

其实难点也就那几个,慢慢捋一下就好,话不多说上代码!!

1、锚点跳转且点击哪个会模块右侧导航栏就会高亮

在这里插入图片描述
在这里插入图片描述

我这个导航栏是因为未来增加模块以免还要自己手动加了就直接调接口循环了,如果是固定的直接写死也行,看见那个:key=“key”了没,对,你想的没错,跟那个没关系 😏,好了,不开玩笑了,那个给他动态赋予class的属性才是正确答案。

思路

使用循环的key与点击后传过去的key做对比,如果一样的话就给他添加相应的css。

具体实现

把传过去的key赋值给一个data里面的变量例如:index,然后在标签里使用三目运算符进行判断

这个也不算难点 ,还有很多种实现方法,比如通过路由判断、还有通过传路由判断,看个人喜欢与习惯吧。

2、关于翻页自动感应

思路

前面说了,我们是使用index来控导航栏中哪个模块高亮的 当鼠标往下滚动时让整个页面往下滚动整个页面的高度且index加一反之减一

具体实现

代码语言:javascript
复制
<div @mousewheel="mouseWheel"></div>
mouseWheel(e) {
if (e.wheelDelta || e.detail) {
if (e.wheelDelta > 0 || e.detail < 0) {
 // 当鼠标向上滚动时触发
}
if (e.wheelDelta < 0 || e.detail > 0) {
 // 当鼠标向下滚动时触发
}
}
}

在最外层容器中加入这个鼠标触发事件 然后就可以监听鼠标滚轮向上还是向下了

呃…想详细了解的朋友自行百度哈,这里不过多赘述

当鼠标向下滚动时我们使用

代码语言:javascript
复制
window.scrollTo(x,y);

来让页面进行滚动且让index加一反则减一

这样一来就能实现导航栏的自动感应了

但是要注重几个细节问题

第一、当你到达了顶部或者底部时需要重置你的index 第二、你加的高度变量要重置 第三、滚到底部或者顶部时需要取消终止滚动函数

以上就是自动感应导航栏的实现了,如果有不明白的朋友可以评论或者私信讨论。

我的博客即将同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=1vkujvhqpg4v

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-04-22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、锚点跳转且点击哪个会模块右侧导航栏就会高亮
  • 2、关于翻页自动感应
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档