javascript - 如何从指定偏移量计算鼠标移动距离

标签 javascript jquery mouseevent offset mousemove

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

最佳答案

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

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

方案一:50px; (开始和结束之间的距离)

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

方案二:100px; (行驶的距离)

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

您的代码似乎是针对第二种解决方案,但问题是针对第一种。

关于javascript - 如何从指定偏移量计算鼠标移动距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19862496/

相关文章:

javascript - 如何计算进度条 x 轴鼠标被点击的位置?

javascript - 如何确保 addEventListener 不会忽略 for 循环中 i var 的迭代?

Javascript 将 HTML 和 css 内容作为字符串返回,但不返回 javascript

jquery - qq.FileUploader : Cancel submit

php - 使用 codeigniter 获取数据库上具有相同值的列

java - 如何在动画游戏中实现鼠标按下方法而不创建另一个类?

javascript - 使用 AJAX 注入(inject) javascript 和 HTML

javascript - 删除tinyMCE Editor.onKeyPress事件-Opera中的中断

javascript - Array.prototype.values() 未定义 - 在 NodeJS 环境中使用 Babel 转译 ES6

cocoa nextEventMatchingMask 未接收 NSMouseMoved 事件