监听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 相关文章推荐
Javascript中Eval函数的使用说明
Oct 11 Javascript
Exitjs获取DataView中图片文件名
Nov 26 Javascript
Jquery替换已存在于element上的event的方法
Mar 09 Javascript
jquery三个关闭弹出层的小示例
Nov 05 Javascript
Js实现滚动变色的文字效果
Jun 16 Javascript
JavaScript中Function详解
Feb 27 Javascript
最精简的JavaScript实现鼠标拖动效果的方法
May 11 Javascript
JS留言功能的简单实现案例(推荐)
Jun 23 Javascript
详解a++和++a的区别
Aug 30 Javascript
详细介绍RxJS在Angular中的应用
Sep 23 Javascript
解决LayUI表单获取不到data的问题
Aug 20 Javascript
express 项目分层实践详解
Dec 10 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
世界收音机发展史
2021/03/01 无线电
关于php内存不够用的快速解决方法
2013/10/26 PHP
ThinkPHP调试模式与日志记录概述
2014/08/22 PHP
PHP打开和关闭文件操作函数总结
2014/11/18 PHP
php实现微信公众号企业转账功能
2018/10/01 PHP
yii2.0框架多模型操作示例【添加/修改/删除】
2020/04/13 PHP
ie focus bug 解决方法
2009/09/03 Javascript
从零开始学习jQuery (十一) 实战表单验证与自动完成提示插件
2011/02/23 Javascript
CodeMirror2 IE7/IE8 下面未知运行时错误的解决方法
2012/03/29 Javascript
js生成随机数之random函数随机示例
2013/12/20 Javascript
关于onchange事件在IE和FF下的表现及解决方法
2014/03/08 Javascript
jQuery中ajax的get()方法用法实例
2014/12/26 Javascript
JavaScript获取表单enctype属性的方法
2015/04/02 Javascript
JavaScript学习笔记整理之引用类型
2016/01/22 Javascript
JQuery解析XML的方法小结
2016/04/02 Javascript
JS实现点击发送验证码 xx秒后重新发送功能
2019/07/30 Javascript
微信小程序修改checkbox的样式代码实例
2020/01/21 Javascript
[01:08:32]DOTA2-DPC中国联赛 正赛 DLG vs PHOENIX BO3 第二场 1月18日
2021/03/11 DOTA
python赋值操作方法分享
2013/03/23 Python
Python生成数字图片代码分享
2017/10/31 Python
Python3处理HTTP请求的实例
2018/05/10 Python
Python中三元表达式的几种写法介绍
2019/03/04 Python
linux安装python修改默认python版本方法
2019/03/31 Python
Python脚本利用adb进行手机控制的方法
2019/07/08 Python
Python编写通讯录通过数据库存储实现模糊查询功能
2019/07/18 Python
python 画条形图(柱状图)实例
2020/04/24 Python
css3使用animation属性实现炫酷效果(推荐)
2020/02/04 HTML / CSS
英国领先的NHS批准的在线药店:Pharmacy2U
2017/01/06 全球购物
小天鹅官方商城:LittleSwan
2017/06/16 全球购物
英国性能汽车零件和发动机配件在线:Maxpeedingrods
2019/11/05 全球购物
Java平台和其他软件平台有什么不同
2015/06/05 面试题
小学生安全演讲稿
2014/04/25 职场文书
依法行政工作汇报
2014/10/28 职场文书
GitHub上77.9K的Axios项目有哪些值得借鉴的地方详析
2021/06/15 Javascript
python可视化大屏库big_screen示例详解
2021/11/23 Python
Java实现二分搜索树的示例代码
2022/03/17 Java/Android