表格需要 `ref = "table"` 用于定位该表格
指定 `height="150"` 用于固定表头不参与滚动
```
<el-table :data="tableData" ref="table" height="150" style="width: 100%">
<el-table-column prop="date" label="日期" width="180"> </el-table-column>
<el-table-column prop="name" label="姓名" width="180"> </el-table-column>
<el-table-column prop="address" label="地址"> </el-table-column>
</el-table>
```
```
infinitScroll() {
// 拿到表格挂载后的真实DOM
const table = this.$refs.table as any;
// 拿到表格中承载数据的div元素
const divData = table.bodyWrapper
divData.onmouseover = function () {
clearInterval(t);
}; //鼠标移入,停止滚动
divData.onmouseout = function () {
start()
}; //鼠标移出,继续滚动
// 拿到元素后,对元素进行定时增加距离顶部距离,实现滚动效果(此配置为每100毫秒移动1像素)
let t;
function start() {
// 数据少于表格高度停止滚动
if (divData.clientHeight >= divData.scrollHeight){
return;
}
t = setInterval(() => {
// 元素自增距离顶部1像素
divData.scrollTop += 1
// 判断元素是否滚动到底部(可视高度+距离顶部=整个高度)
if (divData.clientHeight + divData.scrollTop == divData.scrollHeight) {
// 重置table距离顶部距离
divData.scrollTop = 0
}
}, 100)
}
start()
}
```
转载本站另一文章,实在厉害,存起来以备以后实现类似需求使用。