Highcharts plotband label zIndex

时间:2013-03-11 09:32:01

标签: highcharts

我正在尝试将plotBand放在轴标记下方,但是它的标签位于它们上方。

由于标签继承了乐队的zIndex并且无法指定这个属性,有没有办法在绘制图形后不需要我更改zIndex?

查看示例here,我希望标签出现在yAxis tick的前面。

我见过一个潜在的解决方案here,但想知道是否有更好的方法来实现它。

1 个答案:

答案 0 :(得分:2)

许多Highcharts似乎不支持开箱即用的zIndex属性,因为它使用SVG。 this question的回答是:

“SVG中的Z索引由元素在文档中出现的顺序定义。如果要将特定形状置于顶部,则必须更改元素顺序。”

这就是.toFront()函数所做的事情,所以你可能会被困在那里。

我写了一个小片段,在图表首次渲染时将所有plotBand的标签更新到前面:

Highcharts.Chart.prototype.firstRender = (function (func){
     return function(){
         func.apply(this, arguments);
         $.each(this.axes, function(){
             $.each(this.plotLinesAndBands, function(){
                 this.label.toFront(); 
             });
         });
         this.tooltip.label.toFront();
         this.seriesGroup.label.toFront();
     }
 } (Highcharts.Chart.prototype.firstRender));

以下是JSFiddle的示例。如果这能完成你所需要的,请告诉我。