自学内容网 自学内容网

uniapp uni-table最简单固定表头

需求:固定表头数据,在网上找了半天,啥都有,就是一直实现不了,最后更改代码实现

1.效果

2.主要代码讲解+完整代码

表格的父级一定要设置高度,不然会错位,我看网上说设置position:fixed,我觉得没必要,给父级设置position: relative;,表头设置position: absolute就可以定位到想要的位置了,但是这样会导致脱离标准文档流,所以还要在表格内容设置个margin-top:44px.44px是表头的高度,复制如下代码即可实现需求~

<template>
<view class="uni-container">
<uni-table ref="table"  border stripe emptyText="暂无更多数据">
<view class="tableHead">
<uni-tr>
<uni-th align="center">
<view style="width:50px;">姓名</view>
</uni-th>
<uni-th align="center">
<view style="width:50px;">部门</view>
</uni-th>
<uni-th align="center">
<view style="width:50px;">职位</view>
</uni-th>
<uni-th align="center">
<view style="width:50px;">角色</view>
</uni-th>
</uni-tr>
</view>
<view class="tableBody" >
<uni-tr v-for="(item, index) in tableData" :key="index">
<uni-td>
<view style="width:50px;">{{item.realname}}</view>
</uni-td>
<uni-td>
<view style="width:50px;">{{item.name}}</view>
</uni-td>
<uni-td>
<view style="width:50px;">{{item.post || ''}}</view>
</uni-td>
<uni-td>
<view style="width:50px;">{{item.roleName}}</view>
</uni-td>
</uni-tr>
</view>
</uni-table>
</view>


</template>

<script>
export default {
data() {
return {
loading: false,
tableData: [{
name: '382'
}, {
name: '382'
}],
}
},
mounted() {
const result = [];
for (let i = 0; i < 100; i++) {
result.push({
date: new Date().toISOString(),
realname: '张三',
name: '研发',
post:'11'
})
}
this.tableData = result;
}
}
</script>

<style lang="scss">
.uni-container {
height: 500rpx;

margin-top: 50rpx;
position: relative;
}

/* //表头固定样式 */
::v-deep .tableHead {
font-weight: bold;
color: #333333;
background: #F4F6FF;
z-index: 20;
position: absolute;
top: 0rpx;
}

::v-deep .tableBody {
height: 500px;
overflow: scroll;
margin-top: 44px;
background-color: #fff;
}
</style>

文章到处结束,希望对你有所帮助~


原文地址:https://blog.csdn.net/qq_44278289/article/details/144377951

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!