美文网首页
el-table中的数据滚动加载实现

el-table中的数据滚动加载实现

作者: 小码农_影 | 来源:发表于2020-10-16 09:50 被阅读0次

第一步

获取到当前滚动加载的el-table表格节点

注意的是 如果存在多个表格,用ref获取dom节点,需要指定为第一个,

并且是当前dom节点下的bodyWrapper元素,

然后给这个元素添加滚动事件

this.$nextTick(function(){

var dom =this.$refs[`personTable_${that.scrollTableId}`];

    var tableBodyEle = dom[0].bodyWrapper;

    tableBodyEle.addEventListener('scroll', that.onPersonScroll);

})

滚动加载的判断条件:

let inner = that.$refs['personTable_'+that.scrollTableId][0].bodyWrapper;

let scrollTop = inner.scrollTop,//当前元素区域的滚动条高度

// 变量windowHeight是可视区的高度

let windowHeight = inner.clientHeight || inner.clientHeight

// 变量scrollHeight是滚动条的总高度

let scrollHeight = inner.scrollHeight || inner.scrollHeight

if (scrollTop + windowHeight === scrollHeight) {//滚动条滚出的高度加上可视区高度 等于滚动条的总高度,则需要加载

    if (that.scrollPersonFlag) {

        //设置一个滚动加载的开关,默认为true

        //滚动一次变为false

        //滚动一次如果当前数据数量小于总数,要置为true;

        that.scrollPersonFlag =false

        var signatoryNo = that.scrollTableId;

        var pageSize =40;

        that.startPersonRow +=40;

        that.loading =true;

        _getPersonSignatory({signatureId:this.signatureId,startRow:that.startPersonRow,pageSize,signatoryNo}).then(res=>{//请求数据的接口

        that.loading  =false;

        if(res.data.success){

                that.ruleFormSigner.personSignerList.frontendData.forEach(item=>{

                    if(item.signatoryId == that.scrollTableId){

                        if(item.memberList.length < res.data.result.total){//如果当前滚动加载的盒子中的成员变量小于总数,则开关还是打开状态  否则是关闭状态

                            that.scrollPersonFlag =true;

                           }

                        }

                    })

            }

        })

        }

}

相关文章

  • el-table中的数据滚动加载实现

    第一步: 获取到当前滚动加载的el-table表格节点 注意的是 如果存在多个表格,用ref获取dom节点,需要指...

  • el-table滚动加载数据

    为 el-table 全局注册自定义指令,用来监听 el-table 滚动到底部时的事件,在main.js中注册 ...

  • thinkphp5 向下滑动触发“ 加载更多 ”;ajax 异步

    实现效果:手机页面向下滚动加载数据 前端代码: javascript 代码: 后台数据接收:

  • 实现一个简单的 vue 无限加载指令

    vue 中的自定义指令是对底层 dom 进行操作,下面以实现滚动到底部加载数据,实现无限加载来介绍如何自定义一个简...

  • 上实现无限滚动加载

    在线示例:https://yujinpan.github.io/el-table-infinite-scroll/...

  • 滚动条滚动到可视区域加载数据

    实现功能:页面某版块,当滚动条滚动到该区域时加载数据,否则不加载,节省页面加载时间 加一个开关,当ajax请求成功...

  • 页面无限滚动实现原理

    前端无限滚动一般指元素滚动到最后,动态加载更多数据。实现原理大只如下:假设outer为外层容器, 则当滚动条滚动到...

  • 深入理解js

    延迟加载 (Lazyload) 三种实现方式 延迟加载也称为惰性加载,即在长网页中延迟加载图像。用户滚动到它们之前...

  • 懒加载

    1.什么是懒加载 只加载当前窗口范围中的图片 在用户滚动页面的时候自动获取更多的数据 2.懒加载的特点 通过滚动获...

  • 2017-4-5_工作报告

    工作报告 修复汇车滚动加载bug 下拉刷新重新加载数据后,没有清空旧的数据滚动加载时把旧数据和新数据拼接在一起了。...

网友评论

      本文标题:el-table中的数据滚动加载实现

      本文链接:https://www.haomeiwen.com/subject/urfwpktx.html