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

Highcharts饼图:鼠标悬停切片时如何单独设置对应图例项样式?

实现饼图切片悬停时对应图例项的样式修改

我希望在鼠标悬停饼图切片时,为对应的图例项设置样式。目前我可以通过以下plotOptions代码修改整个图例(所有图例项)的样式:

plotOptions: {
    series: {
        point: {
            events: {
                mouseOver: function () {
                    this.series.chart.legend.update({
                        itemStyle: {
                            fontWeight: "bold",
                        },
                    });
                },
                mouseOut: function () {
                     this.series.chart.legend.update({
                         itemStyle: {
                             fontWeight: "normal",
                         },
                     });
                },
            },
        },
    },
},

请问如何访问单个图例项的CSS来进行设置?

解决方法

可以直接定位到对应图例项的DOM节点修改样式,无需全局更新图例配置,核心思路是精准找到当前悬停切片对应的图例项,单独调整其样式:

修改后的代码示例

plotOptions: {
    series: {
        point: {
            events: {
                mouseOver: function () {
                    // 重置所有图例项的默认样式
                    this.series.chart.legend.allItems.forEach(item => {
                        item.legendItem.css({ fontWeight: 'normal' });
                    });
                    // 高亮当前切片对应的图例项
                    this.series.legendItem.css({ fontWeight: 'bold' });
                },
                mouseOut: function () {
                    // 鼠标移出后恢复所有图例项的默认样式
                    this.series.chart.legend.allItems.forEach(item => {
                        item.legendItem.css({ fontWeight: 'normal' });
                    });
                }
            }
        }
    }
}

关键说明

  • this.series.legendItem:指向当前悬停切片所属系列对应的图例项DOM元素
  • css():Highcharts内置的DOM样式修改方法,可直接传入CSS属性键值对
  • 先重置所有图例项样式再高亮目标项,能避免多个图例项同时保持高亮状态

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 04:09:55