监听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 对象的解释
Nov 24 Javascript
jQuery中empty()方法用法实例
Jan 16 Javascript
浅谈angularjs module返回对象的坑(推荐)
Oct 21 Javascript
jQuery插件FusionCharts绘制的2D条状图效果【附demo源码】
May 13 jQuery
angular实现图片懒加载实例代码
Jun 08 Javascript
JS实现匀加速与匀减速运动的方法示例
Sep 04 Javascript
微信小程序用户位置权限的获取方法(拒绝后提醒)
Nov 15 Javascript
jQuery实现点击旋转,再点击恢复初始状态动画效果示例
Dec 11 jQuery
Vue多组件仓库开发与发布详解
Feb 28 Javascript
vue动态注册组件实例代码详解
May 30 Javascript
javascript 内存模型实例详解
Apr 18 Javascript
javaScript实现一个队列的方法
Jul 14 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
解析posix与perl标准的正则表达式区别
2013/06/17 PHP
PHP函数microtime()用法与说明
2013/12/04 PHP
php实现无限级分类
2014/12/24 PHP
laravel 5 实现模板主题功能(续)
2015/03/02 PHP
2020最新版 PhpStudy V8.1版本下载安装使用详解
2020/10/30 PHP
JavaScript 浏览器验证代码(来自discuz)
2010/07/17 Javascript
jQuery插件实现屏蔽单个元素使用户无法点击
2013/04/12 Javascript
浅析Javascript使用include/require
2013/11/13 Javascript
jQuery实现仿Alipay支付宝首页全屏焦点图切换特效
2015/05/04 Javascript
js/jquery判断浏览器类型的方法小结
2015/05/12 Javascript
javascript实现简单加载随机色方块
2015/12/25 Javascript
jQuery抛物线运动实现方法(附完整demo源码下载)
2016/01/08 Javascript
20分钟成功编写bootstrap响应式页面 就这么简单
2016/05/12 Javascript
原生javascript实现的ajax异步封装功能示例
2016/11/03 Javascript
Bootstrap风格的WPF样式
2016/12/07 Javascript
jQuery实现最简单实用的分秒倒计时
2017/02/05 Javascript
canvas实现十二星座星空图
2017/02/14 Javascript
微信小程序实现拖拽 image 触摸事件监听的实例
2017/08/17 Javascript
[00:20]TI9观赛名额抽取Ⅱ
2019/07/24 DOTA
深入Python解释器理解Python中的字节码
2015/04/01 Python
python学习--使用QQ邮箱发送邮件代码实例
2019/04/16 Python
在python中实现调用可执行文件.exe的3种方法
2019/07/07 Python
详解python中的index函数用法
2019/08/06 Python
如何基于python实现画不同品种的樱花树
2020/01/03 Python
Pycharm调试程序技巧小结
2020/08/08 Python
Python Unittest原理及基本使用方法
2020/11/06 Python
python实现马丁策略回测3000只股票的实例代码
2021/01/22 Python
快速一键生成Python爬虫请求头
2021/03/04 Python
美国美发品牌:Bumble and Bumble
2016/10/08 全球购物
John Varvatos官方网站:设计师男士时装
2017/02/08 全球购物
Tory Burch德国官网:美国时尚生活品牌
2018/01/03 全球购物
党代会心得体会
2014/09/04 职场文书
教师纪念9.18事件演讲稿范文
2014/09/14 职场文书
对学校的意见和建议
2015/06/04 职场文书
MybatisPlus代码生成器的使用方法详解
2021/06/13 Java/Android
TV动画《神废柴☆偶像》公布先导PV
2022/03/20 日漫