如何在Highcharts中从系列设置工具提示边框颜色

时间:2016-10-15 19:09:57

标签: javascript highcharts

默认情况下,边框采用相应系列或点的颜色。但是我想为某个数据点的工具提示设置不同的颜色,而不改变数据点本身的颜色。

我需要这样的东西:

series: [ { x:1, value: 2.34, tooltip:{borderColor: '#112233'}  }, ... ];

可悲的是,这个属性不能从一个系列中设置。

通过在工具提示配置中设置格式化程序回调函数,只能定义工具提示的内部HTML,即无法在此函数中更改边框颜色。

这只能通过一些CSS技巧来实现吗?

1 个答案:

答案 0 :(得分:0)

可以通过包装tooltip.refresh()方法来实现。

首先,我检查工具提示是否显示,不共享,不分割(共享或拆分工具提示需要一些不同的代码)。然后,我检查选项是否已设置并更改svg元素的笔画属性。

Highcharts.wrap(Highcharts.Tooltip.prototype, 'refresh', function(p, point, mouseEvent) {
p.call(this, point, mouseEvent);

if (!this.isHidden && !this.shared && !this.split) {
  var pointTooltipBorderColor = point && 
                                point.options.tooltip &&
                                point.options.tooltip.borderColor,

    seriesTooltipBorderColor = point && 
                               point.series && 
                               point.series.options.tooltip && 
                               point.series.options.tooltip.borderColor,

    borderColor = pointTooltipBorderColor || seriesTooltipBorderColor,
    label = this.label;

  if (label && borderColor) {
    label.attr({
      stroke: borderColor
    });
  }
}
});

示例:http://jsfiddle.net/oLnfqhmn/2/