element的el-table中记录滚动条位置的示例代码


Posted in Javascript onNovember 06, 2019

场景重现:在项目中使用了keep-alive来缓存组件,且使用element中的table列表,但在项目中是对table进行了二次封装,跟页码合在了一起。按照网上的直接对scrollTop赋值,赋值失败了,还要加上setTimeout才能成功,虽然实现了功能,但是不知道原因,可以的话希望有人能解答。

废话少说,直接赋上代码。

<template>
 <div class="table">
  <el-table ref="table">
  ...
  </el-table>
  <wp-pager @page-change="pageChange" :total="total" v-if="pager" v-bind="$attrs" v-on="$listeners"></wp-pager>
 </div>

</template>
<script>
 import { WpPager } from '../pager'

 export default {
  data() {
   return {
    scrollTop: null
   }
  },
  activated() {
   this.saveScroll()
  },
  mounted() {
   
  // 监听滚动条的位置 
  this.$refs.table.bodyWrapper.addEventListener('scroll', (res) => {
    let height = res.target
    this.scrollTop = height.scrollTop
   },false)
  },

  beforeDestroy() {
   this.$refs.table.bodyWrapper.removeEventListener('scroll', (res) => {
    let height = res.target
    this.scrollTop = height.scrollTop
   },false)
  },
  
  methods: {
  // 当页码改变的时候滚动条重新到顶部
   pageChange (page) {
    this.$emit('page-change', page)
    this.scrollTop = 0
    this.saveScroll()
   },

// 这里如果直接赋值给this.$el.querySelector('.el-table__body-wrapper').scrollTop会失效,需要加上setTimeout才行。
   saveScroll() {
    this.$nextTick(()=> {
    setTimeout(() => {
     var scrollTop = this.$el.querySelector('.el-table__body-wrapper')
     scrollTop.scrollTop = this.scrollTop
     }, 13)
    })
   }
  }
 }
</script>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript 写的一个简单的timer
Jul 30 Javascript
返回页面顶部top按钮通过锚点实现(自写)
Aug 30 Javascript
js控制table合并具体实现
Feb 20 Javascript
js实现非常简单的焦点图切换特效实例
May 07 Javascript
JavaScript原型及原型链终极详解
Jan 04 Javascript
React Native中导航组件react-navigation跨tab路由处理详解
Oct 31 Javascript
详解如何使用nvm管理Node.js多版本
May 06 Javascript
js核心基础之构造函数constructor用法实例分析
May 11 Javascript
微信小程序获取公众号文章列表及显示文章的示例代码
Mar 10 Javascript
vue组件开发之slider组件使用详解
Aug 21 Javascript
vue操作dom元素的3种方法示例
Sep 20 Javascript
vue 里面的 $forceUpdate() 强制实例重新渲染操作
Sep 21 Javascript
webpack是如何实现模块化加载的方法
Nov 06 #Javascript
node读写Excel操作实例分析
Nov 06 #Javascript
详解vue页面首次加载缓慢原因及解决方案
Nov 06 #Javascript
electron 安装,调试,打包的具体使用
Nov 06 #Javascript
weui中的picker使用js进行动态绑定数据问题
Nov 06 #Javascript
在vue中阻止浏览器后退的实例
Nov 06 #Javascript
vue 关闭浏览器窗口的时候,清空localStorage的数据示例
Nov 06 #Javascript
You might like
php一个找二层目录的小东东
2012/08/02 PHP
PHP根据IP地址获取所在城市具体实现
2013/11/27 PHP
使用PHP函数scandir排除特定目录
2014/06/12 PHP
php 如何禁用eval() 函数实例详解
2016/12/01 PHP
Thinkphp5框架实现获取数据库数据到视图的方法
2019/08/14 PHP
MooTools 1.2介绍
2009/09/14 Javascript
datagrid框架的删除添加与修改
2013/04/08 Javascript
javascript实现iframe框架延时加载的方法
2014/10/30 Javascript
kindeditor修复会替换script内容的问题
2015/04/03 Javascript
javascript实现的淘宝旅行通用日历组件用法实例
2015/08/03 Javascript
AngularJS入门教程之MVC架构实例分析
2016/11/01 Javascript
Bootstrap学习笔记 轮播(Carousel)插件
2017/03/21 Javascript
详解如何在Vue2中实现组件props双向绑定
2017/03/29 Javascript
input输入框内容实时监测(附代码)
2017/08/15 Javascript
在vue中添加Echarts图表的基本使用教程
2017/11/22 Javascript
元素全屏的设置与监听实例
2017/11/28 Javascript
js实现手表表盘时钟与圆周运动
2020/09/18 Javascript
[45:56]Ti4正赛第一天 VG vs NEWBEE 3
2014/07/19 DOTA
Python增量循环删除MySQL表数据的方法
2016/09/23 Python
Python 专题六 局部变量、全局变量global、导入模块变量
2017/03/20 Python
python opencv 图像尺寸变换方法
2018/04/02 Python
Pytorch之parameters的使用
2019/12/31 Python
Python压缩模块zipfile实现原理及用法解析
2020/08/14 Python
一些关于python 装饰器的个人理解
2020/08/31 Python
Python3.8.2安装包及安装教程图文详解(附安装包)
2020/11/28 Python
Pycharm在指定目录下生成文件和删除文件的实现
2020/12/28 Python
把富文本的回车转为br标签
2019/08/09 HTML / CSS
土耳其家居建材网站:Koçtaş
2016/11/22 全球购物
加拿大领先的牛仔零售商:Bluenotes
2018/01/22 全球购物
机械系大学毕业生推荐信
2013/11/27 职场文书
信息科学与技术专业求职信范文
2014/02/20 职场文书
经济管理毕业生求职信
2014/03/15 职场文书
搞笑爱情保证书
2014/04/29 职场文书
卖车协议书范文
2016/03/23 职场文书
Tensorflow与RNN、双向LSTM等的踩坑记录及解决
2021/05/31 Python
nginx日志格式分析和修改
2022/04/28 Servers