gpt4 book ai didi

javascript - 用于响应平移/缩放的范围更新的 Flot 事件

转载 作者:行者123 更新时间:2023-11-29 21:50:49 25 4
gpt4 key购买 nike

对于 Flot,是否有一个事件在用户使用鼠标滚轮完成平移或缩放后触发(在 range.xaxis.to/fromrange.yaxis.to/from已经解决了)?我试图在用户平移或缩放主图后使用下面的行更新概览图上的选择,但我发现概览图的更新发生在平移或缩放之后(不是两者)。

$("#plot").bind("mouseup scroll",updateOverviewSelection);

编辑:http://jsfiddle.net/apandit/nu2rr58h/9/

在 jsfiddle 中,我无法在主图中平移,并且光标似乎没有变回正常。用户可以在概览图中单击并拖动以进行选择,从而放大主图。我还希望能够允许用户平移和缩放主图,并更新概览图中的选择框;我试图通过将 updateOverviewSelection 方法绑定(bind)到滚动和 mouseup 事件的 plot div 来做到这一点。 Flot 中是否有一个事件会在每次更新 x 轴和 y 轴限制时触发?

最佳答案

此问题的解决方案如下。问题是设置概览图的选择 (overview.setSelection(ranges);) 触发了缩放方法,因为它绑定(bind)到概览图中的 plotselected 事件。在 zoom 方法的末尾,绘制了主图,再次调用了 updateOverviewSelection 中的 overview.setSelection(ranges); 行> 方法。为了防止这两种方法/事件之间的这种往来,我添加了一个 updatingOverviewSelection 标志。

http://jsfiddle.net/apandit/nu2rr58h/12/

var datasets = [[
[0,0],[1,1],[2,2],[3,3],[4,4],[5,5],[6,6],[7,7],[8,8],[9,9]
],
[
[0,0],[-1,-1],[-2,-2],[-3,-3],[-4,-4],[-5,-5],[-6,-6],[-7,-7],[-8,-8],[-9,-9]
]];

var plot = $.plot("#plot",datasets,{
pan: {
interactive: true
},
zoom: {
interactive: true,
mode: "x"
}
});

var overview = $.plot("#overview",datasets,{
selection: {
mode: "xy"
}
});

var updatingOverviewSelection = false;

$("#plot").bind("plotpan plotzoom",updateOverviewSelection);
$("#overview").bind("plotselected", zoom);

function zoom(event,ranges) {
if(updatingOverviewSelection) {
updatingOverviewSelection = false;
}
else {
var options = plot.getOptions();

options.xaxes[0].min = ranges.xaxis.from;
options.xaxes[0].max = ranges.xaxis.to;
options.yaxes[0].min = ranges.yaxis.from;
options.yaxes[0].max = ranges.yaxis.to;

plot = $.plot("#plot",datasets,options);
}
};

// get the window x-axis and y-axis ranges for the main plot
// and set the selection in the overview plot to those ranges
function updateOverviewSelection(event) {
var options = plot.getOptions();

var ranges = {
xaxis: {
from: options.xaxes[0].min,
to: options.xaxes[0].max
},
yaxis: {
from: options.yaxes[0].min,
to: options.yaxes[0].max
}
};

updatingOverviewSelection = true;
overview.setSelection(ranges);
};

关于javascript - 用于响应平移/缩放的范围更新的 Flot 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29379535/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com