vue 页面跳转 重新定位到跳转前的高度

11 篇文章 0 订阅

1、首先得获取到跳转前页面的数据(<div ref="wrap"></div>)

this.$refs.wrap

2、在data中重新定义一个数据,用来存储滚动高度

scrollHeight:0

3、在跳转前页面监听滚动事件

  mounted() {
    this.$nextTick(() => {
      this.$refs.warp.addEventListener('scroll',  this.handleScroll)
    });
    const scroll = localStorage.getItem('scroll')
    if(scroll !== null) {
        this.setScroll(scroll)
    }
  },
  beforeDestroy() { 
    localStorage.setItem('scroll',this.scrollHeight)
    this.$refs.warp.removeEventListener('scroll',  this.handleScroll)
  },
      handleScroll() {  
      this.scrollHeight = this.$refs.warp.scrollTop;  
    }  
    setScroll(e){
      if(this.$refs.warp){
         this.$refs.warp.scrollTo({  
        top:e,  
        behavior: 'smooth' // 平滑滚动效果  
      }); 
      }
    },

我这只是个单纯的官网页面,重新定位高度是在走路由的时候,通过localStorage.removeItem('scroll')

大家有啥好办法更新滚动高度的距离,麻烦在评论区留言,让我学习一下!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值