您的当前位置:首页在element-ui中table表格怎样滚动加载
广告

在element-ui中table表格怎样滚动加载

2023-11-30 来源:吉希宠物网

添加事件

给需要无线加载的表格添加自定义事件,v-loadmore=”loadMore”。在methods中定义触发的事件

 loadMore () { if (this.loadSign) { this.loadSign = false this.page++ if (this.page > 10) { return } setTimeout(() => { this.loadSign = true }, 1000) console.log('到底了', this.page) } }

this.loadSign 用于标记page是否继续递增

相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

推荐阅读:

实现文件上传的AjaxUpLoad.js

Vue的轮播组件怎么使用

小编还为您整理了以下内容,可能对您也有帮助:

vue element-ui table表格滚动加载方法

添加全局注册事件,用来监听滚动事件

window.Vue.directive('loadmore',

{

bind(el,

binding)

{

const

selectWrap

=

el.querySelector('.el-table__body-wrapper')

selectWrap.addEventListener('scroll',

function()

{

let

sign

=

100

const

scrollDistance

=

this.scrollHeight

-

this.scrollTop

-

this.clientHeight

if

(scrollDistance

<=

sign)

{

binding.value()

}

})

}

})

sign

用于标记位置

直接让scrollDistance

===

sign

并不能保证每次都会触发,所以用区间表示。后续会处理频繁触发问题。

添加事件

给需要无线加载的表格添加自定义事件,v-loadmore=”loadMore”。在methods中定义触发的事件

loadMore

()

{

if

(this.loadSign)

{

this.loadSign

=

false

this.page++

if

(this.page

>

10)

{

return

}

setTimeout(()

=>

{

this.loadSign

=

true

},

1000)

console.log('到底了',

this.page)

}

}

this.loadSign

用于标记page是否继续递增

以上这篇vue

element-ui

table表格滚动加载方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:Vue2.0+ElementUI实现表格翻页的实例详解vue2.0的Element

UI的表格table列时间戳格式化Element-ui

table中过滤条件变更表格内容的方法

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

获取到当前滚动加载的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;

                           }

                        }

                    })

            }

        })

        }

}

ElementUI el-table 固定列后,滚动条在固定列的位置上无法滚动的问题

场景: 我们项目在使用elementUI的el-table时,固定了好几列,偶然发现滚动条在固定列的位置无法滚动,其他列的位置是可以滚动的,由于固定列比较多,滚动条滚不动太影响操作了。

原因: 研究下发现,是由于固定列把滚动条给遮住了,所以滚动不了。

解决方法:

    1.修改el-table__fixed样式

    .el-table{

        .el-table__fixed{

             height:auto!important;

             bottom:17px!important;

        }

    }

    这种解决方法:就是设置bottom值,使得不盖住滚动条。缺点:不适用与含有合计的table,如果含有合计,合计也会上移。

    2.修改el-table__body-wrapper样式的层级,随便设个层级就可

    .el-table__body-wrapper{

         z-index:2

    }

     这种解决方法:解决滚动条被遮住的问题,同时含有合计也适用,缺点:就是表头和合计那部分有阴影,中间的部分没有阴影,不过不影响效果,问题不大。

    3.在1的基础上,不要el-table默认的合计,自己在el-table标签下添加一行div作为合计,然后需要合计的列自己计算,同时滚动的效果也要和内容同步。

    4.如果上面的办法没有满足需求,就自己动手写table吧。

源自:http://www.chenqichun.com/articleDetails/615137be9e58dfeb349beca0

ElementUI Table横向滚动条遇到的问题汇总

1.横向滚动条且左侧列固定时,滚动条的可操作区域被遮挡,必须点击空白处才可实现拖动,更改样式解决:

/deep/#outputTable .el-table__fixed {

.el-table {

.el-table__fixed {

height:auto !important;

      bottom:17px !important;

    }

}

}

/deep/#outputTable .el-table__body-wrapper {

z-index:2;

}

2.设置固定列,样式错乱,解决方案:

设置max-height

ElementUI Table横向滚动条遇到的问题汇总

1.横向滚动条且左侧列固定时,滚动条的可操作区域被遮挡,必须点击空白处才可实现拖动,更改样式解决:

/deep/#outputTable .el-table__fixed {

.el-table {

.el-table__fixed {

height:auto !important;

      bottom:17px !important;

    }

}

}

/deep/#outputTable .el-table__body-wrapper {

z-index:2;

}

2.设置固定列,样式错乱,解决方案:

设置max-height

elementUI的el-table在用fixed且有滚动条时出现的样式问题总结

1.在el-table的一些列加fixed后,固定列的横向滚动条无法拖动问题: (1)加样式

如果有合计行的,适当增加bottom的值

(2)加上样式后,因为固定列有bottom: 17px的距离,会导致不固定列的滚动到底部后,与左侧发生错位

这时需加上:

2.有纵向滚动条,在横向拖到最右侧时,导致表格位置错乱

这时需要加上

elementUI的el-table在用fixed且有滚动条时出现的样式问题总结

1.在el-table的一些列加fixed后,固定列的横向滚动条无法拖动问题: (1)加样式

如果有合计行的,适当增加bottom的值

(2)加上样式后,因为固定列有bottom: 17px的距离,会导致不固定列的滚动到底部后,与左侧发生错位

这时需加上:

2.有纵向滚动条,在横向拖到最右侧时,导致表格位置错乱

这时需要加上

在element-ui的select下拉框加上滚动加载

在项目中,我们需要运用到很多来自后端返回的数据。有时是上百条,有时甚至上千条。如果加上后端的多表查询或者数据量过大,这就导致在前端的显示就会及其慢,特别是在网络不好的时候更是如此。

自然,后端就做了一项非常“漂亮”的交互体验数据——分页

这不分页还好,一分页对超过10条数据之后的本来也不多,就20条,偏偏还得做个分页器。(假设为10条)

此时,如果能够像购物商城那样拖拽到底部自动加载新数据就好了。

于是《在element-ui的select下拉框加上滚动加载》诞生了。

这里通过自定义封装vue指令进行封装。(什么是指令:官方指令叫v-on,v-model)

以下以element-ui中的select为例:

在main.js同级别文件中添加directives.js:

// directives.js

import Vue from 'vue'

let MyPlugin = {}

export default MyPlugin.install = function(vue, options) {

}

v-loadmore: 用于在element-ui的select下拉框加上滚动到底事件监听

scrollHeight 获取元素内容高度(只读)

scrollTop 获取或者设置元素的偏移值,常用于, 计算滚动条的位置, 当一个元素的容器没有产生垂直方向的滚动条, 那它的scrollTop的值默认为0.

clientHeight 读取元素的可见高度(只读)

如果元素滚动到底, 下面等式返回true, 没有则返回false

scrollHeight - scrollTop === clientHeight

这里运用到了滚动偏移来做监听来处理,这与聊天对话框中默认下拉到底部的原理是大同小异的,后续我会有专门的文章进行讲解。

然后在组件中使用

<el-select

v-model="chatmode"

placeholder="聊天模式"

size="mini"

v-loadmore="loadMore">

<el-option

v-for="item in chatmodes"

:key="item.value"

:label="item.qa_name"

:value="item.qa_code"

:disabled="item.disabled">

</el-option>

</el-select>

<script>

export default {

methods: {

loadMore () {

// 这里写入要触发的方法

}

}

}

</script>

解决element-ui table固定列会遮挡住滚动条 ,左右无法拖动

解决办法:

    1.修改el-table__fixed样式

2.修改el-table__body-wrapper样式的层级,随便设个层级就可

吉希宠物网还为您提供以下相关内容希望对您有帮助:

vue element-ui table表格滚动加载方法

添加全局注册事件,用来监听滚动事件 window.Vue.directive('loadmore',{ bind(el,binding){ const selectWrap = el.querySelector('.el-table__body-wrapper')selectWrap.addEventListener('scroll',function(){ let sign ...

elementui只加载视图内表格

题主是否想询问“elementui只加载视图内表格怎么办”?1、首先打开element-ui表格。2、其次在element-ui表格中,找到滚动条。3、然后使用滚动条滚动到最底部。4、最后再去做网络请求,elementui就不会只加载视图内表格了。

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

注意的是 如果存在多个表格,用ref获取dom节点,需要指定为第一个,并且是当前dom节点下的bodyWrapper元素,然后给这个元素添加滚动事件 this.$nextTick(function(){ var dom =this.$refs[`personTable_${that.scrollTableId...

vue-element(四) el-table滚动加载

查看:参考:注意:vue-infinite-loading2.0只能在Vue.js2.0中使用。如果你想在Vue.js1.0中使用,请安装vue-infinite-loading1.3版本 运用 el-table 的插槽 append 设置一个加载按钮,手动触发页面加载 ...

ElementUI el-table 固定列后,滚动条在固定列的位置上无法滚动的...

3.在1的基础上,不要el-table默认的合计,自己在el-table标签下添加一行div作为合计,然后需要合计的列自己计算,同时滚动的效果也要和内容同步。    4.如果上面的办法没有满足需求,就自己...

ElementUI Table横向滚动条遇到的问题汇总

1.横向滚动条且左侧列固定时,滚动条的可操作区域被遮挡,必须点击空白处才可实现拖动,更改样式解决:/deep/#outputTable .el-table__fixed { .el-table { .el-table__fixed { height:auto !important;  ...

element ui如何动态渲染表格

1 //获取data数据,放入tableData1中 2 $.each(result.data, function (index, element) { 3 tableData1.push(result.data[index].data); 4 }); 5 // 获取表头,通过双层嵌套获取json数据的第二层的属...

在element-ui的select下拉框加上滚动加载

于是《在element-ui的select下拉框加上滚动加载》诞生了。这里通过自定义封装vue指令进行封装。(什么是指令:官方指令叫v-on,v-model)以下以element-ui中的select为例:在main.js同级别文件中添加directives.js:// ...

element-ui select下拉框滚动加载更多

当下拉框要展示大量数据内容时,并且下拉框不展示分页,那就不能手动点击分页去获取数据,那就只能利用监听滚动事件来实现了。参考: https://juejin.cn/post/6844903710972182536#comment // 下面这种方法,我在搜索时会出现...

elementUI的el-table在用fixed且有滚动条时出现的样式问题总结_百度...

1.在el-table的一些列加fixed后,固定列的横向滚动条无法拖动问题: (1)加样式 如果有合计行的,适当增加bottom的值 (2)加上样式后,因为固定列有bottom: 17px的距离,会导致不固定列的滚动到底部后,与左侧发生错位 这...

Top