Vue 实现页面内锚点定位

本文介绍2种方法

一、利用a链接实现锚点定位

这种跳转方法实现的是从某个位置跳转到同页面的另一个位置。为什么会用到这个呢?因为我的页面上有3张表,数据量有点大,如果不滑动页面的话,没法展示完。也就是用户可能看不到下面的表,或者觉得滑动太麻烦了,懒得滑动了。于是我在左边添加了个侧边栏,说明我这个页面有3张表,点击侧边栏选项跳转到对应的页面位置。

侧边栏这么写
在这里插入图片描述
在目标位置(也就是三个表的div)写入一个空的a标签,设置一个name属性,name属性设置必须唯一。这里可以是vital,tumor,cancer。就可以实现页面内跳转了。

但是这么写有个bug. 就是每次点击侧边栏锚点定位表格的时候,url 也会对应的变化。也就是会从localhost:port/browser/#vital 变化到 localhost:port/browser/#tumor .然后vue监听到变化,会重新请求数据,加载数据。 也就是我的想法是 进入页面时加载数据,在跳转表格时不加载数据,但是现在变成了进入页面 ,跳转表格的时候都加载数据。

所以这种方法跳转表格就不行了

下面介绍方法2,恰好解决了问题。

二、document.querySelector(“要返回地方的id”).scrollIntoView(true);

这种方法,url不变化。

侧边栏如下:
在这里插入图片描述

表格 div 中加个id属性
在这里插入图片描述
然后在methods里面添加个函数

goAnchor (selector) {
  document.querySelector(selector).scrollIntoView({
    behavior:"smooth"
  })
} 

总结就是这样的:

<a @click="goAnchor('#anchor14')">点击这里跳转</a>

methods: {
            //模拟锚点跳转
            goAnchor(selector) {//参数selector是id选择器(#anchor14)
                document.querySelector(selector).scrollIntoView({
                    behavior: "smooth"
                });
            },
        }
  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寒江雪ing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值