代码之家  ›  专栏  ›  技术社区  ›  Sergey Novikov

ExtJS 6通过编程重置图表缩放

  •  0
  • Sergey Novikov  · 技术社区  · 8 年前

    我使用 Ext.chart.interactions.CrossZoom 如果是梅特。

    1 回复  |  直到 8 年前
        1
  •  1
  •   scebotari66    8 年前

    有一个未记录的 undoZoom class . 您可以这样使用它:

    chart.getInteraction('crosszoom').undoZoom();
    

    zoomHistory 所有物这个 方法沿着缩放历史一次执行一步/缩放。

    基于 撤消缩放 resetZoom 直接将图表重置为其初始缩放的方法:

    Ext.define(null, {
        override: 'Ext.chart.interactions.CrossZoom',
    
        resetZoom: function () {
            var zoomMap = this.zoomHistory[0],
                axes = this.getChart().getAxes();
    
            if (zoomMap) {
                for (var i = 0; i < axes.length; i++) {
                    var axis = axes[i];
                    if (zoomMap[axis.getId()]) {
                        axis.setVisibleRange(zoomMap[axis.getId()]);
                    }
                }
            }
            this.getUndoButton().setDisabled(true);
            this.zoomHistory = [];
            this.sync();
        }
    });
    

    https://fiddle.sencha.com/#view/editor&fiddle/264t

    另一个编辑

    @SergeyNovikov 撤消缩放 setVisibleRange 方法因此,您也可以直接将其与最小/最大值一起用作参数来重置缩放。