vue3 antdv3 检测Modal的尺寸是否改变,全屏的时候获取Modal的width与height,然后我们就可以动态设置表格高度了。

1、先上个图,我们要实现如下的效果,中间的表格部分要自动随Modal的改变而改变。官方:Ant Design Vue — An enterprise-class UI components based on Ant Design and Vue.js

2、那我们一定要能够检测到Modal的宽高的改变才行,然后Modal并没有提供这样的方法,没法回调来编写代码

3、我们可以使用Observer来监检Modal的改变:

function registerObserver() {
    const modal = document.querySelector('.ant-modal');
    if (modal) {
      resizeObserver.observe(modal);
    } else {
      console.log('modal is null');
    }
  }

这个是antdv3的版本,4的版本不知道样式有没有改变,根据实际情况要进行调整。

const modal = document.querySelector('.ant-modal');

这里一定要是ant-modal,其它的不行,比如 ant-modal-root,并不能实现全程的Observer对Modal的检测改变。

4、还有一点要注意的,调用registerObserver在适当的时机才行,否则modal is null;

5、退出的时候,要断开检测

onBeforeUnmount(() => {
    // 停止监听 Modal 的尺寸变化
    resizeObserver.disconnect();
  });

5、console.输出的结果

6、通过这样我们就可以通过监听也将表格的高度进行动态赋值,来实现我们想要的随Modal的改变而改变高度了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值