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

ApexCharts饼图点击时放大动画效果实现求助

实现ApexCharts饼图点击时的大幅放大动画

方法一:调整内置激活状态的缩放参数

ApexCharts默认的点击放大效果由states.active.scale控制,默认值通常为1.05左右。你只需调大这个数值,就能实现更明显的放大,还可配合动画参数优化效果:

var options = {
  series: [44, 55, 13, 43, 22],
  chart: {
    type: 'pie',
  },
  states: {
    active: {
      scale: 1.2, // 数值越大,放大幅度越高,可按需设置(比如1.3、1.4)
      animation: {
        duration: 300, // 动画持续时长,单位毫秒
        easing: 'easeOutElastic' // 动画缓动效果,让放大过渡更自然
      }
    }
  },
  labels: ['Apple', 'Mango', 'Orange', 'Banana', 'Grapes']
};

var chart = new ApexCharts(document.querySelector("#chart"), options);
chart.render();

方法二:自定义点击事件实现夸张放大效果

如果内置配置的效果仍达不到预期,可通过监听饼图的click事件,手动为选中扇区添加CSS变换样式:

var options = {
  series: [44, 55, 13, 43, 22],
  chart: {
    type: 'pie',
    events: {
      click: function(event, chartContext, config) {
        // 重置所有扇区的样式
        document.querySelectorAll('.apexcharts-pie-slice').forEach(slice => {
          slice.style.transform = '';
          slice.style.transition = '';
        });
        // 为点击的扇区添加放大样式
        if (config.dataPointIndex !== undefined) {
          const targetSlice = document.querySelectorAll('.apexcharts-pie-slice')[config.dataPointIndex];
          targetSlice.style.transform = 'scale(1.3)'; // 自定义放大比例
          targetSlice.style.transition = 'transform 0.3s ease-out'; // 过渡动画
        }
      }
    }
  },
  // 建议关闭内置缩放,避免冲突
  states: {
    active: {
      scale: 1
    }
  },
  labels: ['Apple', 'Mango', 'Orange', 'Banana', 'Grapes']
};

var chart = new ApexCharts(document.querySelector("#chart"), options);
chart.render();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 17:05:21