Vue element 表格刷新页面记录当前滚动条位置,并跳转到滚动条位置

需求:当表格有很多条数据,页面有滚动条,需求是当需要刷新组件时导致页面刷新,或者是跳转页面编辑完回来后,需要跳转到当前表格滚动条的位置。

实现方法如下:

1.首先在el-table 绑定 ref

<el-table ref="table" row-key="id" :data="tableData" style="width: 100%">
  <el-table-column prop="date" label="日期" width="180"></el-table-column>
  <el-table-column prop="name" label="姓名" width="180"></el-table-column>
</el-table>

2.添加监听滚动方法

data() {
    return {
      scrollTop: null //当前表格高度
	}
},
beforeDestroy () { //页面销毁移除监听事件
	this.destroyScroll()
},
mounted () {
	this.scroll() // 监听滚动
},
methods: {
	scroll () {
		this.$refs.table.bodyWrapper.addEventListener('scroll', this.scrollEvent)
	},
	destroyScroll () {
		this.$refs.table.bodyWrapper.removeEventListener('scroll', this.scrollEvent)
	},
	// 获取滚动的高度
	scrollEvent (e) {
		this.scrollTop = e.target.scrollTop
	},
	// 页面刷新后设置当前滚动的位置
	savescroll () { 
		this.$nextTick(()=> {
	        setTimeout(() => {
          		let scroll = this.$el.querySelector('.el-table__body-wrapper')
	          	scroll.scrollTop = this.scrollTop
          	}, 10)
        })
	}
}

注意: 调用savescroll 方法前记得加个判断,是否有滚动高度,防止报错

if (this.scrollTop) {
	this.savescroll ()
}
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值