根据下面的 jQuery 文档,代码可用于捕获 mouseup 和 mouse down 事件。但我的要求有点不同
$("#dic").mouseup(function () {
}).mousedown(function () {
});
但是如何计算 mousedown 位置到 mouseup 位置之间的鼠标移动坐标。请帮助我。如何在 mousedown 和 mouseup 之间应用 mousemove 事件
根据下面的 jQuery 文档,代码可用于捕获 mouseup 和 mouse down 事件。但我的要求有点不同
$("#dic").mouseup(function () {
}).mousedown(function () {
});
但是如何计算 mousedown 位置到 mouseup 位置之间的鼠标移动坐标。请帮助我。如何在 mousedown 和 mouseup 之间应用 mousemove 事件
如果您需要在拖动过程中捕获鼠标经过的所有点,请绑定/取消绑定新的mousemove
处理程序:
var allPoints = [];
$("#dic").mouseup(function (e) {
$(this).unbind("mousemove", trackPoints);
}).mousedown(function (e) {
$(this).bind("mousemove", trackPoints);
});
function trackPoints(e) {
allPoints.push({ x: e.pageX, y: e.pageY });
}
这样,trackPoints
当鼠标向下时将开始射击,并在鼠标重新向上时停止。
您可能还想在您的和处理程序if(e.which == 1)
的顶部添加一个,以便它们只执行鼠标左键,而不是中键或右键。mouseup
mousedown
bind
var X = [],
Y = [],
i = -1;
$("#dic").mouseup(function(e) {
++i;
X[i] = e.pageX;
Y[i] = e.pageY;
// reset everything on mouseup
X = [];
Y = [];
i = -1;
}).mousedown(function(e) {
++i;
X[i] = e.pageX;
Y[i] = e.pageY;
console.log(X);
}).mousemove(function(e) {
++i;
X[i] = e.pageX;
Y[i] = e.pageY;
});
var x = [], y = [], i = 0;
$("#dic").mouseup(function (e) {
$('#status').html(e.pageX +', '+ e.pageY + ' up');
x[i] = e.pageX;
y[i++] = e.pageY;
console.log(x);
console.log(y);
});
$("#dic").mousedown(function (e) {
$('#status').html(e.pageX +', '+ e.pageY + ' down');
i = 0;
x[i] = e.pageX;
y[i++] = e.pageY;
});
$("#dic").mousemove(function (e) {
$('#status').html(e.pageX +', '+ e.pageY + ' move');
x[i] = e.pageX;
y[i++] = e.pageY;
});
这将在 mousedown 时开始记录鼠标位置,您可以在 mouseup 时在控制台上看到输出。然后,您可以按照使用数组的第一项和最后一项或开始和结束之间的任何其他点描述的代码悖论来计算距离。