在某些特定需求下,echarts图需要随着外层div放大缩小而自适应变化,而不是像随着窗口变化而自适应的一般需求。外层div的宽高的在变化时,echart图大小是不会实时改变的。
以下动图修改的是组件最外层div宽高,内部所有标签都是按百分比写的,而echart部分不会自适应改变。

解决办法:element-resize-detector
其中的listenTo方法可以监听指定标签dom变化,并触发回调函数。
- 导库:
import elementResizeDetectorMaker from "element-resize-detector";
- html中:
<div ref="agriEcoDev" style="width: 100%; height: 65%"></div>
- 在vue中methods创建echart的方法中:
- 使用elementResizeDetectorMaker.listen()
- 监听div变化时触发resize()

关键代码:
// 随外层div的大小变化自适应
const _this = this
let erd = elementResizeDetectorMaker();
erd.listenTo(this.$refs.监听的dom, () => {
_this.$nextTick(() => {
echart实例.resize();
})
})
效果:


本文介绍如何使ECharts图表根据Vue应用中外部div的尺寸变化进行自适应调整。当div的宽高发生变化时,通过引入element-resize-detector库,监听div的resize事件,然后在回调中使用ECharts的resize方法实现图表的实时适配。这种方法适用于需要独立于窗口大小变化,仅依赖特定div调整的场景。
1403

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



