eleUI Tab切换echarts显示问题

本文探讨了在使用eleUI Tab组件时,Echarts图表在切换显示时可能出现的短暂空白或尺寸异常问题。问题源于父元素display:none导致的宽度计算错误。解决方案是销毁非显示图表,选中时重新渲染,确保Echarts在绘制时其容器已有正确尺寸。
摘要由CSDN通过智能技术生成

eleUI Tab切换echarts显示问题

案例

在这里插入图片描述
其中图表内容
在这里插入图片描述

问题

问题:tab切换选项卡,其中一个tab中内容是echarts图表,当切换到echarts页时,可能会出现以下问题

  • 内容出现了短暂的空白期,然后图片恢复正常(如果你是通过echarts监控容器ResizeObserver的方式来触发echartsresize的话,其中短暂的空白是因为这里为了节流使用了300ms延时去注册echartsresize事件的缘故)
  • 宽度显示为100px,手动修改浏览器屏幕宽高图片恢复正常(如果你是通过监听windowresize来触发echartsresize的话)

原因

这里针对echarts监控容器ResizeObserver触发的echarts重绘操作,针对案例的样式代码(另外一种方式其实原理一样)进行原因说明:

  • 默认进入页面时,echarts渲染时,父元素的tab属性display: none,所以此时width: 100%没有继承,宽度被echarts默认设置成了100px
  • 如果你的高度也是百分比的话,就会出现空白,因为此时高度被echarts默认设置成了0,此时进入这个页面就会出现一个短暂的空白期,300ms(监听时候就注册了300ms后再重新绘制图片)后恢复图片
  • 如果你的高度是固定高度就会出现一个宽度100px,高度固定高度的图片,300ms后恢复图片

解决方案

解决:不显示echarts时销毁选项卡,选中选项卡时重新渲染绘制图表,也就是保证在echarts进行绘制时,父元素不会是none的状态,而是始终都是存在的始终都是我们理想的高度和宽度,这样就可以实现画布容器属性百分比的继承。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值