监听element-ui table滚动事件的方法


Posted in Javascript onMarch 26, 2019

背景

做管理平台的项目,用到了element-ui,需要通过监听el-table滚动的位置来获取最新的数据,那么怎么样监听el-table的滚动呢?

准备

我们默认的技术栈是 vue+element-ui

template代码:

<el-table 
 :data="logList" 
 :show-header="false" 
 row-class-name="table-row-class" 
 height="700" 
 ref="table" 
 @row-click="rowClick">
 <el-table-column type="expand">
  <el-table-column
  label="log信息"
  prop="message">
 </el-table-column>
</el-table>

绑定监听事件

mounted() {
  // 获取需要绑定的table
  this.dom = this.$refs.table.bodyWrapper
  this.dom.addEventListener('scroll', () => {
   // 滚动距离
   let scrollTop = this.dom.scrollTop
   // 变量windowHeight是可视区的高度
   let windowHeight = this.dom.clientHeight || this.dom.clientHeight
   // 变量scrollHeight是滚动条的总高度
   let scrollHeight = this.dom.scrollHeight || this.dom.scrollHeight
   if (scrollTop + windowHeight === scrollHeight) {
    // 获取到的不是全部数据 当滚动到底部 继续获取新的数据
    if (!this.allData) this.getMoreLog()
    console.log('scrollTop', scrollTop + 'windowHeight', windowHeight + 'scrollHeight', scrollHeight)
   }
  })
 }

获取到新的数据后,调整滚动条的位置

getMoreLog() {
  ...
  this.dom.scrollTop = this.dom.scrollTop - 100
  ...
 }

结语

至此我们已经完成了对table的绑定! 希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
基于jQuery制作迷你背词汇工具
Jul 27 Javascript
文本框(input)获取焦点(onfocus)时样式改变的示例代码
Jan 10 Javascript
javascript跨域原因以及解决方案分享
Apr 08 Javascript
使用jquery如何获取时间
Oct 13 Javascript
巧用canvas
Jan 21 Javascript
利用Vue.js框架实现火车票查询系统(附源码)
Feb 27 Javascript
纯js仿淘宝京东商品放大镜功能
Mar 02 Javascript
vue学习笔记之vue1.0和vue2.0的区别介绍
May 17 Javascript
JavaScript实现的仿新浪微博原生态输入字数即时检查功能【兼容IE6】
Sep 26 Javascript
详解微信小程序canvas圆角矩形的绘制的方法
Aug 22 Javascript
微信小程序常用的3种提示弹窗实现详解
Sep 19 Javascript
小程序实现tab标签页
Nov 16 Javascript
JavaScript的级联函数用法简单示例【链式调用】
Mar 26 #Javascript
node之本地服务器图片上传的方法示例
Mar 26 #Javascript
详解vue-element Tree树形控件填坑路
Mar 26 #Javascript
vue-router 起步步骤详解
Mar 26 #Javascript
JS div匀速移动动画与变速移动动画代码实例
Mar 26 #Javascript
vue cli3.0结合echarts3.0与地图的使用方法示例
Mar 26 #Javascript
详解用JS添加和删除class类名
Mar 25 #Javascript
You might like
重置版战役片段
2020/04/09 魔兽争霸
php连接mssql数据库的几种方法
2013/02/21 PHP
Laravel中七个非常有用但很少人知道的Carbon方法
2017/09/21 PHP
Laravel下生成验证码的类
2017/11/15 PHP
JavaScript实现拼音排序的方法
2012/11/20 Javascript
JavaScript实现表格点击排序的方法
2015/05/11 Javascript
Vue.js每天必学之构造器与生命周期
2016/09/05 Javascript
微信公众平台开发教程(五)详解自定义菜单
2016/12/02 Javascript
flexslider.js实现移动端轮播
2017/02/05 Javascript
快速搭建React的环境步骤详解
2017/11/06 Javascript
vue里面使用mui的弹出日期选择插件实例
2018/09/16 Javascript
vue项目实现减少app.js和vender.js的体积操作
2020/11/12 Javascript
原生js实现弹窗消息动画
2020/11/20 Javascript
如何在vue 中使用柱状图 并自修改配置
2021/01/21 Vue.js
python中的闭包用法实例详解
2015/05/05 Python
Python算法之求n个节点不同二叉树个数
2017/10/27 Python
python实现音乐下载器
2018/04/15 Python
Python3按一定数据位数格式处理bin文件的方法
2019/01/24 Python
利用python将图片版PDF转文字版PDF
2019/05/03 Python
python 对字典按照value进行排序的方法
2019/05/09 Python
Python+selenium点击网页上指定坐标的实例
2019/07/05 Python
Pyqt5自适应布局实例
2019/12/13 Python
matplotlib 对坐标的控制,加图例注释的操作
2020/04/17 Python
俄罗斯家居用品购物网站:Евродом
2020/11/21 全球购物
俄罗斯连接商品和买家的在线平台:goods.ru
2020/11/30 全球购物
什么是属性访问器
2015/10/26 面试题
如何进行Linux分区优化
2013/02/12 面试题
小学生元旦感言
2014/02/26 职场文书
活动总结报告范文
2014/05/04 职场文书
对照检查剖析材料
2014/09/30 职场文书
民政局标准版离婚协议书
2014/12/01 职场文书
教师求职信怎么写
2015/03/20 职场文书
2015年银行工作总结范文
2015/04/01 职场文书
开除员工通知
2015/04/22 职场文书
辞职信格式范文
2015/05/13 职场文书
Android Rxjava3 使用场景详解
2022/04/07 Java/Android