监听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 相关文章推荐
js弹出确认是否删除对话框
Mar 27 Javascript
Javascript实现div的toggle效果实例分析
Jun 09 Javascript
JavaScript中日期的相关操作方法总结
Oct 24 Javascript
AngularJs directive详解及示例代码
Sep 01 Javascript
浅谈js常用内置方法和对象
Sep 24 Javascript
jQuey将序列化对象在前台显示地实现代码(方法总结)
Dec 13 Javascript
vue-vuex中使用commit提交mutation来修改state的方法详解
Sep 16 Javascript
vue中引入第三方字体文件的方法示例
Dec 17 Javascript
Vue实现多标签选择器
Nov 28 Javascript
通过JS判断网页是否为手机打开
Oct 28 Javascript
js仿淘宝放大镜效果
Dec 28 Javascript
AJAX引擎原理以及XmlHttpRequest对象的axios、fetch区别详解
Apr 09 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
星际原理概述
2020/03/04 星际争霸
php学习之 循环结构实现代码
2011/06/09 PHP
PHP去掉从word直接粘贴过来的没有用格式的函数
2012/10/29 PHP
PHP图片处理之图片背景、画布操作
2014/11/19 PHP
PHP中文乱码解决方案
2015/03/05 PHP
PHP 文件锁与进程锁的使用示例
2017/08/07 PHP
详解php中生成标准uuid(guid)的方法
2019/04/28 PHP
javascript中的数字与字符串相加实例分析
2011/08/14 Javascript
单击浏览器右上角的X关闭窗口弹出提示的小例子
2013/06/12 Javascript
JS获取文本框,下拉框,单选框的值的简单实例
2014/02/26 Javascript
js下将阿拉伯数字每三位一逗号分隔(如:15000000转化为15,000,000)
2014/06/02 Javascript
Javascript中八种遍历方法的执行速度深度对比
2017/04/25 Javascript
使用element-ui table expand展开行实现手风琴效果
2019/03/15 Javascript
微信小程序整合使用富文本编辑器的方法详解
2019/04/25 Javascript
django js 实现表格动态标序号的实例代码
2019/07/12 Javascript
详解Nuxt内导航栏的两种实现方式
2020/04/16 Javascript
vue 动态给每个页面添加title、关键词和描述的方法
2020/08/28 Javascript
安装dbus-python的简要教程
2015/05/05 Python
Python基础语法(Python基础知识点)
2016/02/28 Python
利用python解决mysql视图导入导出依赖的问题
2017/12/17 Python
Python代码实现KNN算法
2017/12/20 Python
2018年Python值得关注的开源库、工具和开发者(总结篇)
2018/01/04 Python
Python中is和==的区别详解
2018/11/15 Python
Python创建数字列表的示例
2019/11/28 Python
Python IDE环境之 新版Pycharm安装详细教程
2020/03/05 Python
Pycharm内置终端及远程SSH工具的使用教程图文详解
2020/03/19 Python
纯CSS3单页切换导航菜单界面设计的简单实现
2016/08/16 HTML / CSS
资料员的岗位职责
2013/11/20 职场文书
师德师风的心得体会
2014/09/02 职场文书
大一工商管理职业生涯规划:有梦最美,行动相随
2014/09/18 职场文书
上班迟到检讨书范文300字
2014/11/02 职场文书
原告离婚代理词
2015/05/23 职场文书
小学音乐课教学反思
2016/02/18 职场文书
Java 将PPT幻灯片转为HTML文件的实现思路
2021/06/11 Java/Android
Python Matplotlib绘制条形图的全过程
2021/10/24 Python
Python可变集合和不可变集合的构造方法大全
2021/12/06 Python