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 阻止javascript事件冒泡,获取控件ID值
Jun 27 Javascript
js下利用控制器载入对应脚本
Jul 17 Javascript
asp.net+js实现金额格式化
Feb 27 Javascript
Javascript 字符串模板的简单实现
Feb 13 Javascript
JS操作JSON方法总结(推荐)
Jun 14 Javascript
javascript 判断页面访问方式电脑或者移动端
Sep 19 Javascript
详解Angular的8个主要构造块
Jun 20 Javascript
H5实现仿flash效果的实现代码
Sep 29 Javascript
Vue 中使用vue2-highcharts实现曲线数据展示的方法
Mar 05 Javascript
vue 自定义指令自动获取文本框焦点的方法
Aug 25 Javascript
Vue之封装公用变量以及实现方式
Jul 31 Javascript
JavaScript实现显示和隐藏图片
Apr 29 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图片上传存储源码并且可以预览
2011/08/26 PHP
第六章 php目录与文件操作
2011/12/30 PHP
静态html文件执行php语句的方法(推荐)
2016/11/21 PHP
javascript之大字符串的连接的StringBuffer 类
2007/05/08 Javascript
js 取时间差去掉周六周日实现代码
2012/12/25 Javascript
可以用鼠标拖动的DIV实现思路及代码
2013/10/21 Javascript
jQuery表格排序组件-tablesorter使用示例
2014/05/26 Javascript
js实现的奥运倒计时时钟效果代码
2015/12/09 Javascript
jQuery对html元素的取值与赋值实例详解
2015/12/18 Javascript
vue init webpack myproject构建项目 ip不能访问的解决方法
2018/03/20 Javascript
解决Mac下安装nmp的淘宝镜像失败问题
2018/05/16 Javascript
Python面向对象特殊成员
2017/04/24 Python
浅谈python中的__init__、__new__和__call__方法
2017/07/18 Python
python爬虫实战之最简单的网页爬虫教程
2017/08/13 Python
python+selenium识别验证码并登录的示例代码
2017/12/21 Python
Python科学计算包numpy用法实例详解
2018/02/08 Python
对Python实现累加函数的方法详解
2019/01/23 Python
python实现按关键字筛选日志文件
2019/12/24 Python
Python实现JS解密并爬取某音漫客网站
2020/10/23 Python
PyCharm Ctrl+Shift+F 失灵的简单有效解决操作
2021/01/15 Python
超酷炫 CSS3垂直手风琴菜单
2016/06/28 HTML / CSS
详解CSS3中强大的filter(滤镜)属性
2017/06/29 HTML / CSS
canvas如何绘制钟表的方法
2017/12/13 HTML / CSS
static函数与普通函数有什么区别
2015/12/25 面试题
办理护照介绍信
2014/01/16 职场文书
婚庆司仪主持词
2014/03/15 职场文书
《少年王冕》教学反思
2014/04/11 职场文书
小学家长评语大全
2014/04/16 职场文书
中学生民族团结演讲稿
2014/08/27 职场文书
医院护士党的群众路线教育实践活动对照检查材料思想汇报
2014/10/04 职场文书
2015年敬老月活动总结
2015/03/27 职场文书
人生遥控器观后感
2015/06/11 职场文书
2016党员党章学习心得体会
2016/01/14 职场文书
解析python中的jsonpath 提取器
2022/01/18 Python
关于MySQL临时表为什么可以重名的问题
2022/03/22 MySQL
win10壁纸在哪个文件夹 win10桌面背景图片文件位置分享
2022/08/05 数码科技