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

ApexCharts柱状图添加border-radius后动画异常的排查与修复

ApexCharts柱状图添加border-radius后动画异常(柱子向左拉伸)

问题现象

为ApexCharts柱状图配置border-radius后,图表加载或更新时出现动画异常,柱子会向左拉伸变形,无法正常展示高度过渡动画。

配置代码(Vue环境)

脚本部分

const series: ApexAxisChartSeries = [
    {
        name: 'series-1',
        data: [70,10, 5,5, 10]
    }
]

const options: ApexOptions = {
    chart: {
        type: 'bar',
        animations: {
            enabled: true
        },
        toolbar: {
            show: false
        },
        zoom: {
            enabled: false
        },
        sparkline: {
            enabled: true
        },

    },
    states: {
        hover: {
            filter: {
                type: 'none'
            }
        },
        active: {
            filter: {
                type: 'none'
            }
        }
    },
    plotOptions: {
        bar: {
            borderRadius: 4,
            columnWidth: 41,
            distributed: true,
            rangeBarOverlap: true,
            colors: {
                backgroundBarOpacity: 0.3,
                backgroundBarColors: arrayOfColors,
                backgroundBarRadius: 4
            },
            borderRadiusApplication: 'around'
        }
    },
    dataLabels: {
        enabled: false
    },
    colors: arrayOfColors,
    tooltip: {
        enabled: false
    },

    legend: {
        show: false,
    },
    grid: {
        show: false,
    },

    xaxis: {
        axisTicks: { show: false },
        labels: {
            show: false
        },

        axisBorder: { show: false },
        categories: [`a`, 'b', 'c', 'd', 'e']
    },
    yaxis: {
        show: false,
        min: 0,
        max: 100
    }
}

模板部分

<apexchart width="252" height="120"  :options="options" :series="series"> </apexchart>

可能的原因及解决办法

1. 调整borderRadiusApplication配置

当前设置的'around'值,结合distributed: true和固定columnWidth时,可能引发动画计算逻辑异常。可以尝试移除该属性(使用默认值)或修改为'end':

plotOptions: {
    bar: {
        borderRadius: 4,
        columnWidth: 41,
        distributed: true,
        rangeBarOverlap: true,
        colors: {
            backgroundBarOpacity: 0.3,
            backgroundBarColors: arrayOfColors,
            backgroundBarRadius: 4
        },
        // 移除或修改配置项
        // borderRadiusApplication: 'around'
    }
},

2. 排查distributed与columnWidth的冲突

开启distributed: true时,ApexCharts会自动分配柱子宽度,手动设置columnWidth可能导致布局计算冲突,进而影响动画表现。可以尝试移除columnWidth配置,让图表自动计算:

plotOptions: {
    bar: {
        borderRadius: 4,
        // columnWidth: 41, // 移除该配置
        distributed: true,
        // ...其他配置
    }
},

3. 修改动画参数

尝试更换动画缓动函数或禁用动态动画,让过渡效果更稳定:

chart: {
    type: 'bar',
    animations: {
        enabled: true,
        easing: 'easeOutQuad', // 更换缓动函数
        dynamicAnimation: {
            enabled: false // 禁用动态动画
        }
    },
    // ...其他配置
}

4. 版本兼容性检查

如果以上方法无效,可能是当前ApexCharts版本存在border-radius动画相关bug。可以尝试升级到最新稳定版本,或回退到已知无此问题的版本。

内容的提问来源于stack exchange,提问作者Juan Pablo Spiatta

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 01:50:55