echarts容器设置width: 100%无效 宽始终显示100px

5 篇文章 0 订阅
2 篇文章 0 订阅

明明给chart容器设置了 width: 100%; 为什么始终无效, 一直都是100px呢?

在这里插入图片描述

原因: 我的echarts组件与另一个组件是相互切换的(tab切换), 并且使用的是v-show 控制组件的显示与隐藏(即 display: none;)

一开始显示的不是echarts组件, 这就导致容器一开始是display: none; 隐藏状态, 此时获取不到echarts的dom元素(从页面消失, 脱离文档流), 所以echarts就默认给自己设置了100px的宽

解决: 在echarts组件中 mounted时期, 动态设置高度:
props: {
    // 手动设置容器的宽(解决一开始容器隐藏, width100% 无效的问题)
    width: {
        type: Number,
        default: null,
    },
},
mounted() {
    if (this.width) {
        (document.querySelector('.chart') as HTMLElement).style.width = this.width + 'px';
    }
},

使用props 可以做到兼容:
(1) width: 100%无效, 我们就在父组件中传width进来, 手动设置;
(2) 如果100%有效, 那就不传, 也没关系

好了, 今天就分享到这边喽~~!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值