监听element-ui 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滚动事件的方法 的全部内容, 来源链接: utcz.com/z/353865.html

回到顶部