【问题标题】:Highcharts 'Reset Zoom' after calling setExtremes调用 setExtremes 后,Highcharts '重置缩放'
【发布时间】:2013-03-21 14:37:58
【问题描述】:

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

我有办法强制“重置缩放”按钮以编程方式显示吗?

更新:

打电话

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

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

更新:

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

chart.xaxis[0].zoom(minx, maxx); chart.yaxis[0].zoom(miny, maxy); chart.redraw();

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

【问题讨论】:

    标签: highcharts


    【解决方案1】:

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

    chart.showResetZoom();
    

    另外,为了让按钮正常工作,你应该使用axis.zoom而不是设置极端:

    axis.zoom(newMin,newMax);
    

    让我知道它是否有效!

    【讨论】:

    • 我在 x 和 y 轴的 afterSetExtremes 事件处理程序中调用了它。该按钮现在停留在图表上,但单击它不会执行任何操作。
    • 你试过用axis.zoom()代替setExtremes吗?它被称为axis.zoom(newMin,newMax);也许从该函数触发缩放事件将使按钮正常工作。只是一个想法。
    • 感谢有关 axis.zoom() 的提示。我会试试看。
    • 我在 API 文档中没有看到 axis.zoom() 方法,是我遗漏了什么吗?那和 setExtremes() 有什么区别?
    • 不太清楚区别,我只知道它有效。 .zoom 不在文档中,它只是在源代码中。
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      这种方法效果很好:

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

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

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

      【讨论】:

        【解决方案4】:

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

        chart.xAxis[0].setExtremes(null, null)
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-02-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多