我看过HighCharts Docs,也已经阅读了这个答案,但是我不知道如何将HTML添加到标签中。我正在尝试用中间值的总和创建一个甜甜圈图。
由于某些原因,这可行(示例A):
var text = this.name + '<br>' + this.y ;
var chart = this.series.chart;
if (!chart.lbl) {
chart.lbl = chart.renderer.label(text, 140, 110)
.css({
fontSize: '22pt',
textAlign: 'center'
})
.add();
} else {
chart.lbl.attr({
text: text
});
}
但这不是(示例B):
var text = '<div><h2>' + this.name + '</h2><p>' + this.y + '</p></div>';
var chart = this.series.chart;
if (!chart.lbl) {
chart.lbl = chart.renderer.label(text, 140, 110)
.css({
fontSize: '22pt',
textAlign: 'center'
})
.add();
} else {
chart.lbl.attr({
text: text
});
}
我尝试设置useHTML
为true:
var chartOptions = {
chart: { ... },
labels: {
useHTML: true,
}
...
}
但无济于事。另外,示例A “起作用”的原因是它正在创建多个<tspan>
元素。这是示例A的结果的检查元素:
<tspan>Pie 2</tspan>
<tspan>100</tspan>
如果可以的话,我真的更喜欢使用HTML,因为这对我来说更容易设置样式,但是我还需要将其作为图表的一部分,因为我需要它与图表进行交互和更改。
这是小提琴。单击任何饼图,以查看我要达到的效果。
始终,当使用Highcharts的一些内部方法时,请从源代码中阅读如何使用它们:
label: function (str, x, y, shape, anchorX, anchorY, useHTML, baseline, className)
如您所见,label()
方法具有更多选项,而不仅仅是text
/ x
/ y
;)
您的工作示例:http : //jsfiddle.net/Q6yQs/57/,其中useHTML
设置为true。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句