Highcharts绘图带标签zIndex

Highcharts绘图带标签zIndex,highcharts,Highcharts,我试图将plotBand放置在轴刻度下方,但其标签位于轴刻度上方 既然标签继承了标注栏的zIndex,并且没有提供指定此属性的方法,那么有没有一种方法不需要我在绘制图形后更改zIndex 请参见一个示例,其中我希望标签显示在yAxis勾号的前面 我已经看到了一个潜在的解决方案,但想知道是否有更好的方法来实现它。许多Highcharts似乎不支持zIndex属性,因为它使用SVG。各国的答复是: “SVG中的Z索引由元素在文档中的显示顺序定义。如果要将特定形状置于顶部,则必须更改元素顺序。” 这就

我试图将
plotBand
放置在轴刻度下方,但其标签位于轴刻度上方

既然标签继承了标注栏的zIndex,并且没有提供指定此属性的方法,那么有没有一种方法不需要我在绘制图形后更改zIndex

请参见一个示例,其中我希望标签显示在yAxis勾号的前面


我已经看到了一个潜在的解决方案,但想知道是否有更好的方法来实现它。

许多Highcharts似乎不支持zIndex属性,因为它使用SVG。各国的答复是:

“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));

下面是一个关于的例子。如果这能满足您的需要,请告诉我。

谢谢您的快速回复。我最后做了一些类似的事情,因为toFront方法使文本位于数据和工具提示之上,这是不可取的。这个解决方法看起来如何?这是可行的,但是我不太确定有多少带有标签的打印条带,或者“3”是否总是一个理想的数字。我将解决方案更新为第一次渲染,而不是重画。老实说,这很可能取决于您的偏好,但如果您在代码顶部包含我的代码片段,它将始终适用于所有图表(plotBand标签将始终位于前面),而无需任何其他代码。啊,废话,没有看到你说的文本在数据和工具提示上方的部分…让我看看是否有一个简单的解决方法。这看起来不错,但是如果我确定我要将标签放置到的zIndex中,与我提出的解决方案相比有什么优势吗?老实说,我认为我的设计看起来更简单,并且没有忽略其他元素,我希望它们的zIndex高于绘图线和绘图带标签。正如我所说,这很可能取决于偏好。如果您知道适用于每个图表的zIndex(如果您甚至有多个图表),那么您的解决方案可能更适合您。当我使用highcharts时,我一次使用大量图表,并且倾向于使用不需要“逐图”代码的解决方案,但这只是我自己。