ant design 自适应高度表格_Ant Design vue table 自适应页面高度

本文介绍了如何利用AntDesign Vue的table组件API,结合Vue的data和watch属性,实现在页面分辨率变化时动态调整表格的高度,以保持页面的美观性和适用性。通过监听窗口大小变化,实时更新表格的固定高度,使其能根据页面其他元素的高度自适应。
摘要由CSDN通过智能技术生成

表格(table)可能是在业务开发的时候,用到的最多的组件,Ant Design vue table 也有着一套十分强大的API,而其中有一项开发时,可能希望表格可以随着当前页面的分辨率,来动态调整表格的固定高度,

使整个页面更加美观性或者适用性。

一、说明:

首先,用到的是table自带的API【:scroll="{ x: 1300,y: 400 }"】

其中x指横轴滚动条设置,这里主要说的是y轴,以上API 可以理解为表格内容区高度固定为400px,多出的将以滚动条的形式展现。

12094cae69da3e174a7cefcefa1ed705.gif

二、实现:

首先,在vue代码的data中设置一个变量,用于获取当前屏幕的高度,如:data() {

return {

windowHeight: document.documentElement.clientHeight,   //实时屏幕高度

}

}

然后在 mounted事钩子中增加window.onresize事件,如:mounted() {

window.onresize = () => {

return (() => {

window.fullHeight = document.documentElement.clientHeight;

this.windowHeight = window.fullHeight;

})()

};

},

在调整页面时触发重新获取页面窗口大小事件。

创建一个watch监听,如:watch: {

windowHeight (val) {

console.log("实时屏幕高度:",val, this.windowHeight );

},

},

实时看下具体的页面窗口高度。

最后,在上述table中,将y轴的固定数值,修改为动态数值,如: 

以上减去的490,为当前页面其他元素的高度,这样就可以根据自己实际的页面情况,让table自适应高度了。

您可以使用 CSS 过渡来实现 ali-react-table 树形展开关闭时的自适应高度变化。具体实现步骤如下: 1. 在你的 CSS 文件中添加以下代码,设置过渡效果: ``` .table-row { transition: height 0.3s ease-in-out; } ``` 2. 在你的组件中,使用 `onTreeExpand` 和 `onTreeCollapse` 属性来监听树形展开和关闭事件,然后在事件处理程序中动态修改表格行的高度: ``` import Table from 'ali-react-table'; class MyTable extends React.Component { constructor(props) { super(props); this.state = { data: [...], expandedRowKeys: [], }; this.handleTreeExpand = this.handleTreeExpand.bind(this); this.handleTreeCollapse = this.handleTreeCollapse.bind(this); } handleTreeExpand(expandedRowKeys) { this.setState({ expandedRowKeys, }); // 在展开时动态修改行高 setTimeout(() => { const rows = document.querySelectorAll('.table-row.expanded'); rows.forEach(row => { row.style.height = `${row.scrollHeight}px`; }); }, 0); } handleTreeCollapse(expandedRowKeys) { this.setState({ expandedRowKeys, }); // 在关闭时动态修改行高 setTimeout(() => { const rows = document.querySelectorAll('.table-row.expanded'); rows.forEach(row => { row.style.height = 'auto'; }); }, 0); } render() { const columns = [...]; const { data, expandedRowKeys } = this.state; return ( <Table columns={columns} dataSource={data} onTreeExpand={this.handleTreeExpand} onTreeCollapse={this.handleTreeCollapse} expandedRowKeys={expandedRowKeys} /> ); } } ``` 这样,当你展开或关闭树形行时,就能够看到平滑的过渡效果了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值