5

我正在使用带有鼠标滚动的 Flot Charts 来放大和缩小。我创建了一个按钮来调用 zoomOut() 并且效果很好,但是我找不到任何解决方案来解决如何一直缩小以使其看起来就像第一次加载时一样。我不想重新加载那个 who 容器,因为它使用 ajax 在刷新时从 mysql 中提取数据。

我用谷歌搜索但找不到任何东西。

4

3 回答 3

7

您也可以设置双击重置Flot图表的缩放功能。它将 Flot 图表重新绘制到其原始状态,并且可以与动态数据一起使用。

$("#placeholder").dblclick(function () {
plot = $.plot(placeholder, dataset, options);
});
于 2014-07-10T15:17:38.837 回答
5

您可以将轴的范围设置为空。通过设置此项,将设置缩放级别,以便每个数据点都可见,就像默认缩放级别一样。

与其他解决方案不同,此解决方案不会构建一个全新的情节。

var axes = plot.getAxes(),
    xaxis = axes.xaxis.options,
    yaxis = axes.yaxis.options;
xaxis.min = null;
xaxis.max = null;
yaxis.min = null;
yaxis.max = null;

// Don't forget to redraw the plot
plot.setupGrid();
plot.draw();
于 2014-07-09T09:21:07.943 回答
2

您可以保存初始轴范围并重新绘制绘图,例如导航。但是您的代码将如下所示:

// do the zooming
plotObjectPointer = $.plot(placeholder, plotData,
    $.extend(true, {}, options, {
        xaxis: { min: ranges.xaxis.from, max: ranges.xaxis.to },
        yaxis: { min: ranges.yaxis.from, max: ranges.yaxis.to }
    }));

其中范围将是您的初始范围。为了防止重复加载 Ajax,您可以使用 window.localStorage 或只是另一个 var 来存储 plotData。

于 2013-05-28T11:51:42.860 回答