uniapp的table怎么固定列添加滚动
时间: 2023-12-07 15:03:54 浏览: 234
在uni-app中,可以使用 `uni-list` 和 `uni-table-view` 组件实现固定列和滚动的效果。
首先,你需要安装 `uni-list` 和 `uni-table-view` 组件。然后,在页面中引入组件:
```html
<template>
<view>
<uni-list>
<!-- 固定列部分 -->
<uni-table-view :tableData="fixedColumns" :columnWidths="fixedWidths" :height="height"></uni-table-view>
<!-- 滚动部分 -->
<scroll-view class="scroll-view" style="height: {{height}}px;">
<uni-table-view :tableData="scrollingColumns" :columnWidths="scrollingWidths" :height="height"></uni-table-view>
</scroll-view>
</uni-list>
</view>
</template>
```
在上面的示例中,`uni-table-view` 组件被用来呈现表格数据。`fixedColumns` 和 `scrollingColumns` 分别是固定列和滚动列的数据。`fixedWidths` 和 `scrollingWidths` 分别是固定列和滚动列的列宽度。`height` 是表格的高度。
接下来,你需要为固定列和滚动列设置样式。你可以在 `style` 中添加以下样式:
```css
<style>
.scroll-view {
overflow-x: scroll;
white-space: nowrap;
-webkit-overflow-scrolling: touch;
margin-top: -1px;
}
.scroll-view::-webkit-scrollbar {
display: none;
}
.scroll-view .uni-table-view {
display: inline-block;
margin-left: -1px;
margin-top: -1px;
}
.uni-table-view td {
border-top: 1px solid #e5e5e5;
border-left: 1px solid #e5e5e5;
}
.uni-table-view td:first-child {
border-left: none;
}
</style>
```
在上面的示例中,`.scroll-view` 设置了滚动部分的样式。`white-space: nowrap;` 和 `display: inline-block;` 使得滚动部分的表格可以水平滚动。`.uni-table-view td` 和 `.uni-table-view td:first-child` 设置了单元格的样式,`.scroll-view::-webkit-scrollbar` 则隐藏了滚动条。
最后,你需要在页面中绑定数据,这里提供一个示例数据:
```javascript
<script>
export default {
data() {
return {
fixedColumns: [
{ name: '固定列1', value: 'A1' },
{ name: '固定列2', value: 'B1' },
],
scrollingColumns: [
{ name: '滚动列1', value: 'A2' },
{ name: '滚动列2', value: 'B2' },
{ name: '滚动列3', value: 'C2' },
{ name: '滚动列4', value: 'D2' },
{ name: '滚动列5', value: 'E2' },
{ name: '滚动列6', value: 'F2' },
{ name: '滚动列7', value: 'G2' },
{ name: '滚动列8', value: 'H2' },
{ name: '滚动列9', value: 'I2' },
{ name: '滚动列10', value: 'J2' },
],
fixedWidths: {
'固定列1': '100rpx',
'固定列2': '200rpx',
},
scrollingWidths: {
'滚动列1': '100rpx',
'滚动列2': '100rpx',
'滚动列3': '100rpx',
'滚动列4': '100rpx',
'滚动列5': '100rpx',
'滚动列6': '100rpx',
'滚动列7': '100rpx',
'滚动列8': '100rpx',
'滚动列9': '100rpx',
'滚动列10': '100rpx',
},
height: 500,
}
}
}
</script>
```
在上面的示例中,`fixedColumns` 和 `scrollingColumns` 分别是固定列和滚动列的数据。`fixedWidths` 和 `scrollingWidths` 分别是固定列和滚动列的列宽度。`height` 是表格的高度。
这样就可以实现固定列和滚动的效果了。
阅读全文