1

我有一些问题。我需要计算一些鼠标从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 偏移量有多少像素,有没有可能计算这个?非常感谢您的帮助。

4

1 回答 1

2

有两种不同的解决方案,具体取决于您对“我移动了多少像素”的定义

场景:鼠标向右移动 25px,向左移动 75px。

方案一:50px;(起点和终点的距离)

在 mousedown 处理程序中,您保存鼠标的坐标。在 mouseup 处理程序中,您计算​​当前鼠标坐标与保存的坐标之间的差异。

方案二:100px;(走过的距离)

在 mousedown 处理程序中,您设置一个布尔值以指示您正在记录并保存鼠标的坐标并将距离初始化为 0。在 mousemove 处理程序中,您计算​​当前鼠标坐标和保存的坐标之间的差异(将其添加到距离)然后用当前鼠标坐标覆盖保存的坐标。在 mouseup 处理程序中,您输出距离并取消设置布尔值。

您的代码似乎适用于第二种解决方案,但问题要求第一种。

于 2013-11-08T15:31:20.663 回答