vue页面中实现锚点的功能,平滑移动至被定位处

一:需求

点击列表中“查看详情”,可以跳转至对应的位置

二:实现方式

1.“查看详情”按钮

<Button @click='goAnchor(row.id)'>查看详情</Button>

2.列表:每个详情具有唯一的id(给每个被定位的id加上jump区别)

<div
    v-for='(item, index) in file_list'
    :key='index'
    :id='`jump${item.id}`'
>
	具体内容
</div>

3.跳转的js方法

// 跳转至详情
goAnchor (selector) {
    const id = `#jump${selector}`
    this.$el.querySelector(id).scrollIntoView({
        behavior: 'smooth', // 平滑过渡
        block: 'start', // 上边框与视窗顶部平齐
    })
},

三:踩过的坑

直接使用 href 进行跳转,虽然实现了定位的功能,但是改变了url的路径:http://localhost:8080/#/jump434,导致页面在刷新的时候会找不到该页面

<a :href='`#jump${row.id}`'>查看详情</a>

四.实现效果

在这里插入图片描述

Vue 跳转页面 定位到某个位置 scrollIntoView 锚点滚动

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值