gpt4 book ai didi

javascript - 按下并释放鼠标按钮时会触发鼠标事件 "mousemove"

转载 作者:行者123 更新时间:2023-12-03 05:55:13 27 4
gpt4 key购买 nike

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

这是正常行为吗?
如何修复/解决方法?我确实需要我的 mouseup 最后触发,或者在释放按钮时 mousemove 根本不触发; setTimeout 不是一个合法的解决方案。

示例:https://jsfiddle.net/h40mm4mj/1/就这么简单:如果您打开控制台并单击 Canvas ,您会注意到 mousemovemouseup

之后记录
canvas.addEventListener("mousemove", function (e) {
console.log("mousemove");
}, false);
canvas.addEventListener("mouseup", function (e) {
console.log("mouseup");
}, false);

编辑:刚刚测试,它只发生在 Chromium、Windows 上。

最佳答案

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

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?

关于javascript - 按下并释放鼠标按钮时会触发鼠标事件 "mousemove",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39961776/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com