首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >鼠标事件"mousemove“在按下和释放鼠标按钮时被触发。

鼠标事件"mousemove“在按下和释放鼠标按钮时被触发。
EN

Stack Overflow用户
提问于 2016-10-10 15:33:03
回答 1查看 1.3K关注 0票数 0

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

,这是正常行为吗?

如何解决/解决问题?我真的需要我的mouseup来启动最后一个,或者mousemove在释放按钮时根本不触发;setTimeout不是一个合法的解决方案。

示例:https://jsfiddle.net/h40mm4mj/1/就像这样简单:如果您打开控制台并在画布中单击,您会注意到在mouseup之后记录了mousemove

代码语言:javascript
运行
复制
canvas.addEventListener("mousemove", function (e) {
  console.log("mousemove");
}, false);
canvas.addEventListener("mouseup", function (e) {
  console.log("mouseup");
}, false);

编辑:刚刚测试,它只发生在铬,Windows。

EN

回答 1

Stack Overflow用户

发布于 2018-04-27 17:22:43

我也有同样的问题。解决了前鼠位置与新鼠标位置的比较:

代码语言:javascript
运行
复制
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?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39961776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档