Javascript HighCharts动态调整渲染器标签或元素的大小
我需要在我的图表中添加大量的脚注,它们必须用svg导出,所以我不能简单地将它们放在周围的HTML中 我已经尝试了几种策略,我可以定位它,包装文本,操纵图表的大小来腾出空间等等 目的是让他们做出反应。 问题是我找不到如何使用事件和渲染器元素或使用chart.labels更新包含此文本的容器的大小 在这把小提琴中(除其他外): 我试图用每次重画创建一个新标签,但我找不到如何处理和销毁我用onload创建的标签Javascript HighCharts动态调整渲染器标签或元素的大小,javascript,jquery,css,svg,highcharts,Javascript,Jquery,Css,Svg,Highcharts,我需要在我的图表中添加大量的脚注,它们必须用svg导出,所以我不能简单地将它们放在周围的HTML中 我已经尝试了几种策略,我可以定位它,包装文本,操纵图表的大小来腾出空间等等 目的是让他们做出反应。 问题是我找不到如何使用事件和渲染器元素或使用chart.labels更新包含此文本的容器的大小 在这把小提琴中(除其他外): 我试图用每次重画创建一个新标签,但我找不到如何处理和销毁我用onload创建的标签 原来highcharts允许您向标签添加类 var label = this.rende
原来highcharts允许您向标签添加类
var label = this.renderer.label(
footnote_text, //str
10, //x
200, //y
'rect', //shape
1, //anchorX
1, //anchorY
1, //useHTML
1, //baseline
'deleteme' //className
)
我添加了一个类名deleteme
,然后使用jQuery将其删除:
$('.highcharts-deletme').remove();
另一个(通用)解决方案是将生成的标签存储在变量中:
var myLabel; // define label
$('#container').highcharts({
chart: {
events: {
load: function () {
myLabel = this.renderer.label( ... ).add();
},
redraw: function () {
if(myLabel) {
myLabel.destroy();
}
myLabel = this.renderer.label( ... ).add();
}
}
}
});
这将比使用jQuery按类查找项目更快。谢谢Pawel,但这是我所做工作之外需要做的事情。它会销毁对象,但不会删除html。你是对的。我没有首先定义变量
var myLabel;//定义标签
谢谢!是的,我知道如何重新调整元素的大小。我将不得不提出一个不同的问题,以便解决如何在重新调整尺寸后为其腾出空间。本质上,Highcharts(顺便说一下,我测试过的最好的图表软件)是为您制作图表而设计的,而不是帮助您从设计的角度操作现有的图表。系列,斧头…是的,太棒了。页边空白、脚注、无关的东西……有些。我不得不使用类名称attr:$(“[className='deleteme']”)。remove();
var myLabel; // define label
$('#container').highcharts({
chart: {
events: {
load: function () {
myLabel = this.renderer.label( ... ).add();
},
redraw: function () {
if(myLabel) {
myLabel.destroy();
}
myLabel = this.renderer.label( ... ).add();
}
}
}
});