【发布时间】:2013-03-11 09:32:01
【问题描述】:
我试图在轴刻度下方放置一个plotBand,但它的标签位于它们上方。
由于标签继承了波段的 zIndex 并且无法指定此属性,有没有一种方法不需要我在绘制图形后更改 zIndex?
查看示例 here,我希望标签出现在 yAxis 刻度的前面。
我看到了一个潜在的解决方案here,但想知道是否有更好的方法来完成它。
【问题讨论】:
标签: highcharts
我试图在轴刻度下方放置一个plotBand,但它的标签位于它们上方。
由于标签继承了波段的 zIndex 并且无法指定此属性,有没有一种方法不需要我在绘制图形后更改 zIndex?
查看示例 here,我希望标签出现在 yAxis 刻度的前面。
我看到了一个潜在的解决方案here,但想知道是否有更好的方法来完成它。
【问题讨论】:
标签: highcharts
很多 Highcharts 似乎不支持开箱即用的 zIndex 属性,因为它使用 SVG。 this question 的回答是:
“SVG 中的 Z 索引由元素在文档中出现的顺序定义。如果要将特定形状置于顶部,则必须更改元素顺序。”
这就是 .toFront() 函数的作用,所以你可能会被卡住。
我写了一个小 sn-p,它在图表第一次渲染时将所有 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 上的示例。让我知道这是否满足您的需求。
【讨论】: