我想在 highstock 图表中的 plotLine 标签后面绘制背景。使用 Highstock API 中的示例,我想出了以下代码(crt 是图表对象):
var textbox = crt.yAxis[ 0 ].plotLinesAndBands[ 0 ].label;
var box = textbox.getBBox();
crt.renderer.rect(box.x - 3, box.y + 1, box.width + 6, box.height, 3).attr({
fill: '#0c0',
id: 'labelBack',
opacity: .7,
'stroke-width': 0,
zIndex: 4
}).add();
这会按预期在标签后面绘制一个半透明框(标签的 zIndex 为 5)。但是,当调整图表大小时,该框相对于图表的左上角保持相同的位置,导致与标签文本不对齐(标签的位置因图表调整大小而变化)。我尝试为此使用图表重绘事件,但即使我可以看到该事件被触发,并且再次执行该函数,也没有绘制其他框(我试图在每次重绘时出现更多框,计划解决在下一次迭代中删除过时的盒子)。我该如何解决这个问题?