用element ui 里面的表格组件写一个列表可以循环滚动的组件,并且表头固定
时间: 2024-05-09 17:16:49 浏览: 108
表格表头固定 内容可以滚动(示例)
4星 · 用户满意度95%
可以尝试使用vue-virtual-scroll-list和element-ui的el-table组件配合使用实现循环滚动列表。在el-table上使用sticky属性可以实现固定表头,具体实现可以参考以下代码:
```
<template>
<div class="scroll-list">
<el-table :data="items" style="width: 100%" :height="tableHeight" :sticky-header="true">
<el-table-column prop="name" label="Name"></el-table-column>
<el-table-column prop="age" label="Age"></el-table-column>
<el-table-column prop="address" label="Address"></el-table-column>
</el-table>
</div>
</template>
<script>
import VirtualList from 'vue-virtual-scroll-list';
export default {
name: "ScrollList",
components: {
VirtualList,
},
props: ['items', 'itemHeight'],
computed: {
// 根据数据长度和每个元素的高度计算列表高度
tableHeight() {
return this.items.length * this.itemHeight;
}
},
methods: {
// 渲染虚拟列表元素
itemRenderer(item, index) {
return (
<div class="virtual-item">
<span>{item.name}</span>
<span>{item.age}</span>
<span>{item.address}</span>
</div>
)
},
// 获取虚拟列表元素高度
itemSize() {
return this.itemHeight;
},
},
}
</script>
<style scoped>
.scroll-list {
height: 400px; // 列表高度
overflow-y: scroll;
}
.virtual-item {
height: 40px; // 每个元素的高度
line-height: 40px;
}
</style>
```
其中,VirtualList组件用于渲染虚拟列表元素,计算显示区域内需要显示的元素,可以有效提升大数据量列表的性能。el-table的sticky属性用于实现表头固定,设置为true即可。在组件中计算列表高度和元素高度,将其传递给VirtualList组件即可实现循环滚动列表。
阅读全文