echarts 在window.addEventListener('resize',function () { 中执行 resize 无效果
时间: 2024-09-18 11:06:06 浏览: 78
window.addEventListener来解决让一个js事件执行多个函数
在 ECharts 中,如果你尝试在 window 的 `resize` 事件监听函数中执行图表的 `resize` 方法,可能会遇到预期之外的效果。这是因为 ECharts 本身并不直接响应浏览器窗口的尺寸变化,而是依赖于 DOM 元素的尺寸变化来进行自动调整。
当你在 `resize` 事件中手动调用 `resize` 方法,ECharts 可能无法感知到窗口大小的真实改变,导致图表没有按照期望的方式缩放。正确的做法是在初始化图表时设置好自动适应视口(`responsive` 或 `resize` 属性),或者在实际的窗口尺寸变化后,重新加载图表,提供全新的数据和配置选项。
示例代码如下:
```javascript
// 初始化图表并设置为自适应视口
var myChart = echarts.init(document.getElementById('container'), null, {
responsive: true,
width: '100%', // 设置宽度为100%,让其随容器自动调整
});
myChart.resize(); // 这里不需要手动调用
// 窗口调整后,重新渲染图表
window.addEventListener('resize', function () {
if (myChart) {
myChart.dispose();
myChart = echarts.init(document.getElementById('container'), null, {
responsive: true,
width: '100%'
});
myChart.resize(); // 重置后才调用resize
}
});
```
阅读全文