You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:Apache ECharts在Bootstrap折叠面板中无法显示的问题

解决方案

问题根源:Bootstrap折叠面板默认处于隐藏状态,ECharts初始化时无法获取到容器的实际宽高(此时宽高为0),导致图表无法正常绘制。

解决方法:监听折叠面板的shown.bs.collapse事件,在面板完全展开后再初始化ECharts,或者对已创建的图表实例调用resize()方法重新渲染。

具体代码实现

// 获取折叠面板和图表容器元素
const targetCollapse = document.getElementById('collapseExample');
const chartContainer = document.getElementById('main');
let chartInstance;

// 监听折叠面板展开完成事件
targetCollapse.addEventListener('shown.bs.collapse', function () {
  if (!chartInstance) {
    // 初始化图表
    chartInstance = echarts.init(chartContainer);
    // 图表配置项(替换为你的实际配置)
    const option = {
      xAxis: {
        type: 'category',
        data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
      },
      yAxis: {
        type: 'value'
      },
      series: [
        {
          data: [150, 230, 224, 218, 135, 147, 260],
          type: 'line'
        }
      ]
    };
    chartInstance.setOption(option);
  } else {
    // 已初始化则触发resize重新渲染
    chartInstance.resize();
  }
});

补充说明

  • 如果你的图表配置已经提前定义好,只需在shown.bs.collapse事件中调用chartInstance.resize()即可。
  • 也可以给图表容器设置固定宽高样式(比如width: 100%; height: 400px;),但监听事件的方式更适配动态尺寸变化的场景。

内容的提问来源于stack exchange,提问作者Vendetta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 14:40:06