监听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 键盘事件的组合使用实现代码
May 04 Javascript
JavaScript DOM基础
Apr 13 Javascript
JavaScript实现下拉列表框数据增加、删除、上下排序的方法
Aug 11 Javascript
jQuery实现监控页面所有ajax请求的方法
Dec 10 Javascript
JS添加删除DIV的简单实例
Jul 08 Javascript
BootStrap Table对前台页面表格的支持实例讲解
Dec 22 Javascript
javascript闭包功能与用法实例分析
Apr 06 Javascript
轻松理解vue的双向数据绑定问题
Oct 30 Javascript
AngularJS使用ui-route实现多层嵌套路由的示例
Jan 10 Javascript
vue首次赋值不触发watch的解决方法
Sep 11 Javascript
聊聊鉴权那些事(推荐)
Aug 22 Javascript
利用JavaScript写一个简单计算器
Nov 27 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中的排序函数sort、asort、rsort、krsort、ksort区别分析
2014/08/18 PHP
PHP实现APP微信支付的实例讲解
2018/02/10 PHP
php报错502badgateway解决方法
2019/10/11 PHP
javascript 学习笔记(八)javascript对象
2011/04/12 Javascript
纯JavaScript实现的兼容各浏览器的添加和移除事件封装
2015/03/28 Javascript
jQuery+html5实现div弹出层并遮罩背景
2015/04/15 Javascript
js实现遍历含有input的table实例
2015/12/07 Javascript
jquery ztree异步搜索(搜叶子)实践
2016/02/25 Javascript
jQuery获取当前点击的对象元素(实现代码)
2016/05/19 Javascript
AngularJS ng-blur 指令详解及简单实例
2016/07/30 Javascript
Vue.js实现一个自定义分页组件vue-paginaiton
2016/09/05 Javascript
JS 动态判断PC和手机浏览器实现代码
2016/09/21 Javascript
关于TypeScript模块导入的那些事
2018/06/12 Javascript
用原生JS实现爱奇艺首页导航栏代码实例
2019/09/19 Javascript
jquery ajax 请求小技巧实例分析
2019/11/11 jQuery
原生js实现五子棋游戏
2020/05/28 Javascript
Python装饰器使用示例及实际应用例子
2015/03/06 Python
开源Web应用框架Django图文教程
2017/03/09 Python
python中os和sys模块的区别与常用方法总结
2017/11/14 Python
python实现给微信指定好友定时发送消息
2019/04/29 Python
Django中如何使用sass的方法步骤
2019/07/09 Python
python把ipynb文件转换成pdf文件过程详解
2019/07/09 Python
python实现大文本文件分割
2019/07/22 Python
Python实现Word文档转换Markdown的示例
2020/12/22 Python
HTML5新增属性data-*和js/jquery之间的交互及注意事项
2017/08/08 HTML / CSS
详解canvas绘制网络字体几种方法
2019/08/27 HTML / CSS
文言文形式的学生求职信
2013/12/03 职场文书
大学生创业计划书的用途
2014/01/08 职场文书
法学函授自我鉴定
2014/02/06 职场文书
公证委托书模板
2014/04/03 职场文书
八达岭长城导游词
2015/01/30 职场文书
教师节获奖感言
2015/07/31 职场文书
高中信息技术教学反思
2016/02/16 职场文书
导游词之舟山普陀山
2019/11/06 职场文书
Python 中的单分派泛函数你真的了解吗
2021/06/22 Python
口袋妖怪冰系十大最强精灵,几何雪花排第七,第六类似北极熊
2022/03/18 日漫