10

我正在使用 setExtremes 放大图表中的细节,并允许用户通过在图表中选择来缩放“x,y”。当用户缩放时,他们会得到一个“重置缩放”按钮,但是当我调用 setExtremes 时,我没有。

有没有办法让我强制“重置缩放”按钮以编程方式出现?

更新:

打电话

if( !chart.resetZoomButton ) {
    chart.showResetZoom();
}

在 afterSetExtremes 事件处理程序中使按钮出现,但单击它不会执行任何操作。

更新:

我没有调用 setExtremes,而是改为调用

chart.xaxis[0].zoom(minx, maxx); chart.yaxis[0].zoom(miny, maxy); 图表重绘();

这与用户通过在图表上选择放大具有相同的效果。

4

4 回答 4

13

刚刚查看了 HighCharts 源代码,看起来这可能适合您:

chart.showResetZoom();

此外,为了使按钮正常工作,您应该使用 axis.zoom 而不是设置极值:

axis.zoom(newMin,newMax);

让我知道它是否有效!

于 2013-03-21T14:47:48.417 回答
7

您可以使用showResetZoom,但您必须检查重置按钮是否已经可见,否则它不会消失

if( !chart.resetZoomButton ) {
    chart.showResetZoom();
}
于 2013-03-21T14:52:03.993 回答
1

这种方法效果很好:

if (!$('.highcharts-button').length) {
    chart.showResetZoom();
}

这是假设唯一可能显示的按钮是“重置缩放”按钮。如果它已经存在,则不要显示另一个。

如果您不执行此检查,则每次调用时都会添加一个新按钮showResetZoom()。单击可见(最近)按钮会重置缩放并删除按钮,但旧按钮仍然可见并且什么都不做。

于 2016-06-09T16:39:21.400 回答
0

如果您使用 setExtremes,您还可以将 min 和 max 设置为 null 以重置:

chart.xAxis[0].setExtremes(null, null)
于 2017-07-31T14:07:53.640 回答