高图表重置缩放按钮

highcharts reset zoom button

本文关键字:按钮 缩放 高图表      更新时间:2023-09-26

我正在尝试仅在启用导航器的情况下使用 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.

您必须禁用导航器以删除底部栏并禁用范围选择器以删除缩放按钮

$('#container').highcharts('StockChart', {
    ...
    rangeSelector : {
        enabled: false
    },
    navigator: {
        enabled: false
    }
    ...
});

检查这个http://jsfiddle.net/CgAnW/

resetZoomButton.destroy()函数只有在

resetZoomButton是一个对象时才能调用。根据Highsotck的消息来源:

对于股票图表 (...)导航器和范围选择器已允许 X 轴缩放。

   if (zoomType === 'x') {
       chart.resetZoomButton = 'blocked'; // replaced with string
   }

因此,要破解它,您可以简单地执行以下操作:

    chart: {
        zoomType:   'xz' // whatever string containg x
    }

这意味着缩放类型保持为"x",但您省略了这个丑陋的 if 语句,该语句将 resetZoomButton 对象替换为一些随机字符串......