highcharts reset zoom button
我正在尝试仅在启用导航器的情况下使用 x 轴缩放来控制 highstock 图表上缩放按钮的可见性。
默认情况下,使用此组合时,核心代码会禁用缩放按钮。但是有一些功能可以让你显示按钮,但我找不到隐藏它的功能。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | 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();
打开按钮
我都试过了
1 2 | chart.resetZoomButton.destroy() chart.resetZoomButton.hide() |
正如其他地方所建议的,但它们不是定义的函数。
任何帮助将不胜感激。
干杯,
D.
For Stock charts (...) X axis zooming is already allowed by the Navigator and Range selector.
1
2
3 if (zoomType === 'x') {
chart.resetZoomButton = 'blocked'; // replaced with string
}
所以,要破解这个,你可以简单地做:
1 2 3 | chart: { zoomType: 'xz' // whatever string containg x } |
这意味着缩放类型仍然是 \\'x\\' 但你省略了这个丑陋的 if 语句,它用一些随机字符串替换了 resetZoomButton 对象...
您必须禁用导航器才能移除底部栏并禁用 rangeSelector 才能移除缩放按钮
1 2 3 4 5 6 7 8 9 10 | $('#container').highcharts('StockChart', { ... rangeSelector : { enabled: false }, navigator: { enabled: false } ... }); |
检查这个
http://jsfiddle.net/CgAnW/