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

向固定尺寸容器新增Chart.js图表时实现动态自适应调整的技术问询

向固定尺寸容器新增Chart.js图表时实现动态自适应调整的技术问询

大家好,我最近在用Vue3结合vue-chartjs的Doughnut组件做图表展示功能,需求是在一个固定尺寸的容器里动态添加多个环形图表。

目前我写了以下代码,页面挂载时会添加几个图表,但遇到了头疼的问题:动态新增的图表没办法很好地自适应容器尺寸,要么显示被截断,要么布局乱掉。我已经给Chart的options设置了responsive: true和maintainAspectRatio: false,容器也加了对应的样式类,但效果还是不对。

下面是我的核心代码:

脚本部分

function addChart(key, colors) {
  const chartData = getChartData(currentYear.value, key);

  const chart = {
    chart: null,
    data: chartData,
    colors: colors,
    key: key
  };

  charts.value.push(chart);
}

onMounted(async () => {
  addChart("key1", colors1);
  addChart("key2", colors1);
  addChart("key3", colors1);
});

模板部分

<template>
  <div id="main">
    <div id="chartContainers" class="chart-container">
      <div v-for="(chartData, index) in charts" :key="index" class="chart-wrapper">
        <div class="chart-title">{{ chartData.key }}</div>
        <div class="canvas-container">
          <Doughnut
              :data="{ labels: ['A', 'B', 'C'], datasets: [{ data: chartData.data, backgroundColor: chartData.colors }] }"
              :options="{ responsive: true, maintainAspectRatio: false, animation: { duration: 0 } }"
          />
        </div>
      </div>
    </div>
  </div>
</template>

想请教一下各位,有没有什么办法能让这些动态添加的Chart.js图表,在固定尺寸的容器里实现正确的自适应调整?麻烦大家帮忙看看,谢谢啦!

备注:内容来源于stack exchange,提问作者dreanor

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.16 11:20:27