是否可以在运行时将导航器隐藏在highcharts中?

是否可以在运行时将导航器隐藏在highcharts中?,highcharts,highstock,Highcharts,Highstock,我正在从事一个highcharts项目,我们需要在运行时显示/隐藏导航器,具体取决于屏幕上过滤器的值 我们已经添加/显示/隐藏了各种数据系列,但是我找不到一个api调用来允许我在运行时动态隐藏导航器?有人知道这样做的方法吗?我不愿意重新加载整个图表,除非我不得不这样做 谢谢大家 可以通过hide()函数隐藏所有特定的SVG导航器元素 塞巴斯蒂安的答案差不多,但它实际上并没有调整图表本身的大小,我认为这是本例中的一项要求,因为否则导航器的空间就完全浪费了(更不用说大的空白看起来很奇怪) 这里有一

我正在从事一个highcharts项目,我们需要在运行时显示/隐藏导航器,具体取决于屏幕上过滤器的值

我们已经添加/显示/隐藏了各种数据系列,但是我找不到一个api调用来允许我在运行时动态隐藏导航器?有人知道这样做的方法吗?我不愿意重新加载整个图表,除非我不得不这样做


谢谢大家

可以通过hide()函数隐藏所有特定的SVG导航器元素

塞巴斯蒂安的答案差不多,但它实际上并没有调整图表本身的大小,我认为这是本例中的一项要求,因为否则导航器的空间就完全浪费了(更不用说大的空白看起来很奇怪)

这里有一个更简单的解决方案:添加一个带有
overflow:hidden
的“clipping”div,然后充分增加图表容器的高度,将导航器推出,使其隐藏起来

演示

$(函数(){
var-delta=0;
$.getJSON('http://www.highcharts.com/samples/data/jsonp.php?filename=aapl-c、 json&回调=?',函数(数据){
//创建图表
var图表=$(“#容器”)。highcharts('StockChart'{
图表:{
活动:{
加载:函数(){
//加载图表后,该值始终保持不变
delta=this.scroller.navigatorGroup.getBBox().height+30;
}
}
},
范围选择器:{
选定:1
},
标题:{
文本:“AAPL股价”
},
系列:[{
名称:“AAPL”,
数据:数据,
工具提示:{
数值小数:2
}
}]
},功能(图表){
$(“#显示隐藏导航btn”)。单击(函数(){
//要隐藏导航器,请增加图表高度;多余部分将被外部clip div剪裁,因为其CSS设置为overflow:hidden
var chartHeight=$('.highcharts容器').height();
$(“#容器”)。高度(图表高度+增量);
$('.highcharts容器')。高度(chartHeight+delta);
//手动回流焊
图.回流焊();
//为下一次单击求反增量
delta=-delta;
});
});
});
});

显示/隐藏导航器

似乎这是更新navigator.enabled选项的最简单方法:

chart.update({navigator: { enabled: false }})

在您的示例和JSFIDLE中,滚动条小部件的线条标记仍然可见。您还必须隐藏/显示
图表、滚动条、滚动条。
。@James谢谢您指出这一点!我已经采纳了你的建议,并改进了塞巴斯蒂安的回答,以展示如何真正隐藏导航器,而不仅仅是使其隐形。
chart.update({navigator: { enabled: false }})