监听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制作滚动到指定位置触发动画
Mar 26 Javascript
JS基于clipBoard.js插件实现剪切、复制、粘贴
May 03 Javascript
JavaScript String 对象常用方法详解
May 13 Javascript
Vue.js实现无限加载与分页功能开发
Nov 03 Javascript
Bootstrap 3 按钮标签实例代码
Feb 21 Javascript
Cookies 和 Session的详解及区别
Apr 21 Javascript
基于daterangepicker日历插件使用参数注意的问题
Aug 10 Javascript
jquery select插件异步实时搜索实例代码
Oct 20 jQuery
javascript变量提升和闭包理解
Mar 12 Javascript
如何利用ES6进行Promise封装总结
Feb 11 Javascript
vue 组件简介
Jul 31 Javascript
浅谈Vue的computed计算属性
Mar 21 Vue.js
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简单的伪原创程序,配合商城采集用的
2010/10/12 PHP
PHP乱码问题,UTF-8乱码常见问题小结
2012/04/09 PHP
php实现对两个数组进行减法操作的方法
2015/04/17 PHP
php生成Android客户端扫描可登录的二维码
2016/05/13 PHP
php实现遍历文件夹的方法汇总
2017/03/02 PHP
Laravel 自带的Auth验证登录方法
2019/09/30 PHP
js图片处理示例代码
2014/05/12 Javascript
$(&quot;&quot;).click与onclick的区别示例介绍
2014/09/25 Javascript
javascript面向对象之定义成员方法实例分析
2015/01/13 Javascript
用户代理字符串userAgent可实现的四个识别
2015/09/20 Javascript
关于JS 预解释的相关理解
2016/06/28 Javascript
jQuery中text() val()和html()的区别实例详解
2016/06/28 Javascript
学习vue.js计算属性
2016/12/03 Javascript
Angularjs修改密码的实例代码
2017/05/26 Javascript
javascript兼容性(实例讲解)
2017/08/15 Javascript
axios进阶实践之利用最优雅的方式写ajax请求
2017/12/20 Javascript
详解Vue 多级组件透传新方法provide/inject
2018/05/09 Javascript
关于AOP在JS中的实现与应用详解
2019/05/06 Javascript
vue实现滑动切换效果(仅在手机模式下可用)
2020/06/29 Javascript
vue悬浮可拖拽悬浮按钮的实例代码
2019/08/20 Javascript
JavaScript实现鼠标移入随机变换颜色
2020/11/24 Javascript
[01:07]DOTA2次级职业联赛 - Fpb战队宣传片
2014/12/01 DOTA
Python多进程库multiprocessing中进程池Pool类的使用详解
2017/11/24 Python
Numpy 理解ndarray对象的示例代码
2020/04/03 Python
IntelliJ 中配置 Anaconda的过程图解
2020/06/01 Python
如何用Python绘制3D柱形图
2020/09/16 Python
HUGO BOSS美国官方网上商店:世界知名奢侈品牌
2017/08/04 全球购物
办公室驾驶员岗位职责
2013/11/15 职场文书
工商管理专业职业生涯规划
2014/01/01 职场文书
工作推荐信范文
2014/05/10 职场文书
银行先进个人事迹材料
2014/05/11 职场文书
争先创优公开承诺书
2014/08/30 职场文书
毛主席纪念堂观后感
2015/06/17 职场文书
学生退学证明
2015/06/23 职场文书
Python使用socket去实现TCP客户端和TCP服务端
2022/04/12 Python
Python绘制散点图之可视化神器pyecharts
2022/07/07 Python