[mouseemove不会在触发键盘事件时触发每一帧

问题描述 投票:2回答:1

理想情况下,在浏览器中,当鼠标继续移动时,mousemove应该触发每一帧。但是当按下(或重复)或释放某个键时,mousemove会停止发射一两帧。我们可以使用以下代码进行测试:

t0 = new Date().getTime()
window.onmousemove = function() {
    t = new Date().getTime()
    if (t-t0 > 20)
        console.log(t-t0)
    t0 = t
}

请尝试保持鼠标移动。仅在您按下,释放键或按住某个键(因为重复此操作)时,控制台才会打印mousemove的延迟。

我已经在Firefox和Chrome上对此进行了测试。我使用macOS 10.14.2。

我正在编写网络动作游戏,因此我需要确保每帧更新鼠标位置。有什么解决办法吗?

理想情况下,在浏览器中,当鼠标继续移动时,mousemove应该触发每一帧。但是当按下(或重复)或释放某个键时,鼠标移动将停止触发一两帧。我们可以测试...

javascript dom-events mousemove
1个回答
0
投票
t0 = new Date().getTime()
window.onmousemove = function() {
    t = new Date().getTime()
    if (t-t0 > 2)
        console.log(t-t0)
    t0 = t
}
© www.soinside.com 2019 - 2024. All rights reserved.