我试图仅在启用导航器的情况下使用x轴缩放控制高压图表上的缩放按钮的可见性。
默认情况下,此组合显示核心代码会禁用缩放按钮。但是有一些功能可以让你显示按钮,但我找不到一个隐藏它。
function createChart() {
$('#container').highcharts('StockChart', {
chart: {
zoomType: "x",
panning: true,
panKey: "shift"
},
rangeSelector: {
selected: 4
},
xAxis: {
events: {
setExtremes: xAxisExtremes
},
},
yAxis: {
labels: {
formatter: function() {
return (this.value > 0 ? ' + ' : '') + this.value + '%';
}
},
plotLines: [{
value: 0,
width: 2,
color: 'silver'
}]
},
series: seriesOptions
});
}
function xAxisExtremes(e) {
var chart = $('#container').highcharts();
if (e.trigger === "zoom") {
if (e.min && e.max) {
chart.showResetZoom();
} else {
alert("Reset Zoom");
// chart.hideResetZoom(); ????
}
}
}
请参阅此小提琴,了解我正在使用的示例。 https://jsfiddle.net/sooftcL7/3/
利用xAxis setExtremes事件,我可以检测使用触发器标识符发生的缩放事件。我可以使用chart.showResetZoom();
打开按钮我试过了两次
chart.resetZoomButton.destroy()
chart.resetZoomButton.hide()
正如其他地方所建议的那样,但它们不是定义的函数。
任何帮助都将不胜感激。
干杯,
d
答案 0 :(得分:1)
您必须禁用导航器以删除底栏并禁用rangeSelector以删除缩放按钮
$('#container').highcharts('StockChart', {
...
rangeSelector : {
enabled: false
},
navigator: {
enabled: false
}
...
});
答案 1 :(得分:0)
resetZoomButton.destroy()
是对象时,才能调用 resetZoomButton
函数。根据Highsotck的消息来源:
对于股票图表(...)导航器和范围选择器已允许X轴缩放。
if (zoomType === 'x') { chart.resetZoomButton = 'blocked'; // replaced with string }
所以,要解决这个问题,你可以做到:
chart: {
zoomType: 'xz' // whatever string containg x
}
这意味着缩放类型仍然是' x'但是你省略了这个丑陋的if语句用一些随机字符串替换resetZoomButton对象......