vue点击列表查看详情后返回列表历史滚动位置

本文探讨了两种方法来改善网页导航体验,确保用户从详情页返回列表页时能回到之前滚动的位置。对于div元素内的滚动,可以在离开页面时记录并保存滚动位置,然后在页面激活时恢复。对于body滚动,同样在离开时记录body的滚动位置,并在进入页面时设置body的滚动位置。这些技巧有助于提高用户交互的流畅性和满意度。
摘要由CSDN通过智能技术生成

在我们的列表页面点击查看详情页后,返回会回到最顶部,这对用户体验的感觉不好。我们需要返回上一页的历史滚动位置。

第一种情况 如果是某个div元素里面的滚动(该方法需要将列表页用keep-alive标签包裹)

//在页面离开时记录滚动位置
beforeRouteLeave (to, from, next) {
    this.scrollTop = document.querySelector("#wrap").scrollTop
    next()
},
// 页面通过keep-alive标签包裹
activated() {
    this.$nextTick(() => {
      let target = document.getElementById('wrap');
      target.scrollTop = this.scrollTop
    })
},

第二种情况 如果是body滚动

//在页面离开时记录滚动位置
beforeRouteLeave (to, from, next) {
    this.scrollTop = document.documentElement.scrollTop || document.body.scrollTop
    next()
},
// 在页面进入时将列表滚动到历史位置
beforeRouteEnter (to, from, next) {
    next(vm => {
        document.body.scrollTop = vm.scrollTop
    })
},
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值