正如标题所说的,我注意到在我的画布上,尽管我实际上没有移动鼠标,但是当鼠标按钮被按下/释放时,mousemove就会被触发。问题是,在释放按钮的情况下,它会在mouseup之后被触发!
,这是正常行为吗?
如何解决/解决问题?我真的需要我的mouseup来启动最后一个,或者mousemove在释放按钮时根本不触发;setTimeout不是一个合法的解决方案。
示例:https://jsfiddle.net/h40mm4mj/1/就像这样简单:如果您打开控制台并在画布中单击,您会注意到在mouseup之后记录了mousemove
canvas.addEventListener("mousemove", function (e) {
console.log("mousemove");
}, false);
canvas.addEventListener("mouseup", function (e) {
console.log("mouseup");
}, false);编辑:刚刚测试,它只发生在铬,Windows。
发布于 2018-04-27 17:22:43
我也有同样的问题。解决了前鼠位置与新鼠标位置的比较:
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");
}
}从这里拍摄:What to do if "mousemove" and "click" events fire simultaneously?
https://stackoverflow.com/questions/39961776
复制相似问题