Javascript:鼠标事件“mousemove”在按下并释放鼠标按钮时被触发

时间:2016-10-10 15:33:03

标签: javascript javascript-events mouseevent mousemove mouseup

正如标题所说,我注意到在我的画布上“鼠标移动”在按下/释放鼠标按钮时被触发,即使我实际上没有移动鼠标。问题是,在释放按钮的情况下,它会在“mouseup”之后被触发!

这是正常行为吗? 如何修复/解决方法?我真的需要我的“鼠标”才能点亮,或者“鼠标移动”在释放按钮时根本不需要点火; setTimeout不是一个合法的解决方案。

示例:https://jsfiddle.net/h40mm4mj/1/就这么简单:如果你打开控制台并在画布上点击,你会注意到“mouseup”后记录了“mousemove”

Store

编辑:刚刚测试过,它只发生在Chromium,W​​indows。

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。解决将普通鼠标位置与新鼠标位置进行比较的问题:

function onMouseDown (e) {
    mouseDown = { x: e.clientX, y: e.clientY };
    console.log("click");
}

function onMouseMove (e) {
    //To check that did mouse really move or not
    if ( e.clientX !== mouseDown.x || e.clientY !== mouseDown.y) {
        console.log("move");
    }
}

从这里采取:(1)