Vue3+ElementPlus表格数据实现无限滚动

363 阅读1分钟

前言

      当数据量比较大的时候想要展示更多数据,分页有时候并不能满足要求,表格无限滚动就可以实现。想要实现表格数据的无限滚动需要通过以下步骤来完成:

1、获取表格数据实际展示的DOM;

image.png

const tableDom = document.querySelector(".el-scrollbar__wrap");

2、监听滚动事件,通过判断滚动高度/可视区的高度/滚动条的总高度去实现滚动条到底后每次新增获取50条;

image.png

const tableScrollFn = () => {
    tableDom?.addEventListener("scroll", () => {
        // 滚动距离
        let scrollTop = tableDom ? tableDom.scrollTop : 0;
        // 可视区的高度
        let windowHeight = tableDom ? tableDom.clientHeight : 0;
        // 滚动条的总高度
        let scrollHeight = tableDom ? tableDom.scrollHeight : 0;
        if (scrollTop + windowHeight === scrollHeight) {
            if (Math.ceil(totalNum.value / 50) == currentPage.value) {
                return;
            }
            if (scrollTop != 0) {
                currentPage.value++;
                getAllocationInfo().then(() => {
                    nextTick(() => {
                        tableDom?.scrollTo({ top: scrollHeight - 574 });
                    });
                });
            }
        }
    });
};