场景,无论页面中添加多少元素,始终让table的高度自适应,这样在table设置了最大高度的情况,页面不用再出现多条滚动条。
// 计算table最大高度
export function getTableMaxH (tableEl,callback) {
var paginationH=24+32 //24是页码的高度 32是页码上下的边距,这里直接写死,也可进行js获取
const setH=()=>{
const appMainBox=document.querySelector('#appMainBox').getBoundingClientRect()
const table=document.querySelector(tableEl).getBoundingClientRect()
const res=appMainBox.height-table.top-paginationH
// console.log('paginationH',appMainBox.height,table.height,paginationH,res)
callback(res)
}
setH()
window.onresize=function(){
setH()
}
}
this.state = {
TableMaxH:300 //默认
}
// 使用
componentDidMount() {
this.fetchTableData();
getTableMaxH('#table',res=>{
this.setState({
TableMaxH:res
})
})
}
<Table columns={columns} scroll={{ y:this.state.TableMaxH}} />

该代码片段展示了如何计算并设置表格的最大高度,以确保在页面中无论添加多少元素,table都能保持自适应高度。通过获取#appMainBox和table元素的尺寸,并考虑分页区域的高度,动态设置table的滚动高度,避免页面出现额外的滚动条。当窗口尺寸变化时,onresize事件会更新表格的高度。
4474

被折叠的 条评论
为什么被折叠?



