我有一些问题。我需要计算从mousedown
事件到mouseup
的一些鼠标移动像素。所以我有这个代码:
selectArea.on({
mousedown : function(e) {
select = true;
},
mousemove : function(e) {
var x2, y2, offset = $(this).offset();
x2 = e.pageX - offset.left,
y2 = e.pageY - offset.top,
width = ?,
height = ?
...
},
mouseup : function() {
select = false;
}
});
现在我需要知道有多少像素我将鼠标从mousedown偏移移动到mouseup偏移量,是否有任何可行的计算方法?很多需要帮助。
答案 0 :(得分:2)
根据您对“我移动了多少像素”的定义,有两种不同的解决方案
场景:鼠标向右移动25px,向左移动75px。
解决方案1:50px; (开始和结束之间的距离)
在mousedown处理程序中,您可以保存鼠标的坐标。在mouseup处理程序中,您可以计算当前鼠标坐标与保存的鼠标坐标之间的差异。
解决方案2:100px; (行走距离)
在mousedown处理程序中,您设置一个布尔值以指示您正在记录并保存鼠标的坐标并使用0初始化距离。在mousemove处理程序中,您可以计算当前鼠标坐标与保存坐标之间的差异(添加它到距离)然后用你当前的鼠标坐标覆盖保存的坐标。在mouseup处理程序中输出距离并取消设置布尔值。
您的代码似乎是第二个解决方案,但问题是第一个。