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

Highcharts技术问题:如何为图例项添加删除线效果?

实现Highcharts饼图图例项点击切换删除线

你的需求是点击饼图图例项时,不仅切换对应扇区的灰色/原色,还要同步给图例文字添加/移除删除线。可以通过操作图例项的DOM元素样式来实现,以下是修改后的完整代码:

Highcharts.chart('container', {
  series: [{
    type: 'pie',
    data: [1, 2, 3, 4],
    showInLegend: true,
    point: {
      events: {
        legendItemClick: function() {
          var originalColor = this.options.originalColor;
          var newColor = (this.color === 'gray') ? originalColor : 'gray';
          var showDataLabels = (newColor !== 'gray');

          this.update({
            color: newColor,
            dataLabels: {
              enabled: showDataLabels
            }
          });

          // 切换图例项的删除线样式
          var legendTextElement = this.legendItem.element.querySelector('.highcharts-legend-text');
          if (newColor === 'gray') {
            legendTextElement.style.textDecoration = 'line-through';
          } else {
            legendTextElement.style.textDecoration = 'none';
          }
          
          return false;
        }
      }
    },
    events: {
      afterInit: function() {
        this.points.forEach(function(point) {
          point.options.originalColor = point.color;
        });
      }
    }
  }],
  accessibility: {
    enabled: false,
  },
});
<script src="https://code.highcharts.com/highcharts.js"></script>

<div id="container"></div>

关键改动说明

  • 通过this.legendItem.element定位到当前图例项的DOM容器,再筛选出内部的文字元素.highcharts-legend-text
  • 根据扇区颜色的切换状态,给文字元素设置text-decoration: line-through(添加删除线)或none(移除删除线)
  • 保留了你原本的扇区颜色切换、数据标签显示/隐藏逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 13:17:43