您现在的位置是:网站首页> 编程资料编程资料
vue中的锚点定位问题_vue.js_
2023-05-24
272人已围观
简介 vue中的锚点定位问题_vue.js_
vue锚点定位

锚点定位与平滑滚动反定位支持
代码如下
html
//要切换滚动的内容区域介绍课程目录课后福利js
mounted(){ //1.mounted里面自动监听滚动事件 代码如下 this.$refs.content.onscroll = ()=>{ this.handleScroll(); } }, methods:{ handleScroll () { let scrollTop = this.$refs.content.scrollTop; let blocks = document.querySelectorAll('.conBlock'); blocks.forEach((item, index) => { console.log("blocks",item.id) if (scrollTop >= item.offsetTop) { this.activeTabs = item.id; } }) }, tabshandleClick(data){ console.log("data",data) let index=Number(data.index) let blocks = document.querySelectorAll('.conBlock'); let step = 40;//滚动步长 let currentScrollTop = this.$refs.content.scrollTop; let targetOffsetTop = blocks[index].offsetTop; console.log("currentScrollTop",currentScrollTop); console.log("targetOffsetTop",targetOffsetTop); if(currentScrollTop > targetOffsetTop){ const smoothUp = ()=>{ if(currentScrollTop >= targetOffsetTop){ if (currentScrollTop - targetOffsetTop >= step) { currentScrollTop -= step; setTimeout(smoothUp,1); } else { currentScrollTop = targetOffsetTop-step; } this.$refs.content.scrollTop = currentScrollTop; } }; smoothUp(); }else{ const smoothDown = ()=>{ if (currentScrollTop <= targetOffsetTop) { // 如果和目标相差距离大于等于step 就跳 step if (targetOffsetTop - currentScrollTop >= step) { currentScrollTop += step; setTimeout(smoothDown,1); } else { // 否则直接跳到目标点,防止跳过 currentScrollTop = targetOffsetTop-step; } this.$refs.content.scrollTop = currentScrollTop; } }; smoothDown(); } }, }锚点定位bug无效和替代方式
在vue项目中,使用锚点定位会和router的规则冲突,在项目中的表现就是第一次点击url改变了,但是没有跳转到锚点位置,再次点击才会跳转。
在vue项目中定义一个方法不适用锚点定位
scrollToSection(id) { let section = document.getElementById(id) if (section) { section.scrollIntoView() } }html标签中绑定click事件就可以了
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
相关内容
- mongoose之bulkWrite操作使用实例_javascript技巧_
- Vue element-ui el-cascader 只能末级多选问题_vue.js_
- 微信小程序实现IP归属地获取功能_javascript技巧_
- 正确更改Ant Design of Vue样式的问题_vue.js_
- 深度剖析 Vue3 在浏览器的运行原理_vue.js_
- Vuepress生成文档部署到gitee.io的注意事项及说明_vue.js_
- 解决Vuepress码云部署及自动跳转404的问题_vue.js_
- VUE3+vite项目中动态引入组件与异步组件的详细实例_vue.js_
- 深度解析 Vue3 的响应式机制_vue.js_
- vuepress打包部署踩坑及解决_vue.js_
点击排行
本栏推荐
