JavaScript

超轻量级php框架startmvc

监听element-ui table滚动事件的方法

更新时间:2020-08-18 16:42:02 作者:startmvc
背景做管理平台的项目,用到了element-ui,需要通过监听el-table滚动的位置来获取最新的数据

背景

做管理平台的项目,用到了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的绑定! 希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

element-ui table滚动 监听element-ui table滚动