监听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 相关文章推荐
IE与Firefox下javascript getyear年份的兼容性写法
Dec 20 Javascript
DWZ table的原生分页浅谈
Mar 01 Javascript
JS短路原理的应用示例 精简代码的途径
Dec 13 Javascript
8个超实用的jQuery功能代码分享
Jan 08 Javascript
详解javascript遍历方式
Nov 11 Javascript
AngularJS中$interval的用法详解
Feb 02 Javascript
JavaScript必知必会(七)js对象继承
Jun 08 Javascript
聊聊那些使用前端Javascript实现的机器学习类库
Sep 18 Javascript
Scala解析Json字符串的实例详解
Oct 11 Javascript
JS和JQuery实现雪花飘落效果
Nov 30 jQuery
vue实现在v-html的html字符串中绑定事件
Oct 28 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
PHP中for循环语句的几种变型
2006/11/26 PHP
php set_time_limit(0) 设置程序执行时间的函数
2010/05/26 PHP
js 无提示关闭浏览器页面的代码
2010/03/09 Javascript
Textbox控件注册回车事件及触发按钮提交事件具体实现
2013/03/04 Javascript
基于jQuery实现的旋转彩圈实例
2015/06/26 Javascript
深入理解angularjs过滤器
2016/05/25 Javascript
JavaScript实现实时更新系统时间的实例代码
2017/04/04 Javascript
node.js中fs.stat与fs.fstat的区别详解
2017/06/01 Javascript
浅谈JS中几种轻松处理'this'指向方式
2019/09/16 Javascript
vue 封装 Adminlte3组件的实现
2020/03/18 Javascript
vue在响应头response中获取自定义headers操作
2020/07/24 Javascript
python实现无证书加密解密实例
2014/10/27 Python
详细介绍Ruby中的正则表达式
2015/04/10 Python
详细解析Python当中的数据类型和变量
2015/04/25 Python
python通过post提交数据的方法
2015/05/06 Python
Python pass详细介绍及实例代码
2016/11/24 Python
Python中with及contextlib的用法详解
2017/06/08 Python
python实现简单点对点(p2p)聊天
2017/09/13 Python
python3.6+opencv3.4实现鼠标交互查看图片像素
2018/02/26 Python
浅谈python中np.array的shape( ,)与( ,1)的区别
2018/06/04 Python
python3.7 使用pymssql往sqlserver插入数据的方法
2019/07/08 Python
利用Python小工具实现3秒钟将视频转换为音频
2019/10/29 Python
python中的Elasticsearch操作汇总
2019/10/30 Python
Python类和实例的属性机制原理详解
2020/03/21 Python
使用matplotlib动态刷新指定曲线实例
2020/04/23 Python
Python爬虫抓取论坛关键字过程解析
2020/10/19 Python
python实现发送邮件
2021/03/02 Python
汽车维修与检测专业应届生求职信
2013/11/12 职场文书
高三家长寄语
2014/04/03 职场文书
小学生操行评语
2014/04/22 职场文书
个人房屋转让协议书范本
2014/10/26 职场文书
基层党员学习党的群众路线教育实践活动心得体会
2014/11/04 职场文书
2014年新教师工作总结
2014/11/08 职场文书
MySQL 查询速度慢的原因
2021/05/25 MySQL
微信小程序中使用vant框架的具体步骤
2022/02/18 Javascript
Python中使用Opencv开发停车位计数器功能
2022/04/04 Python