Webkit意外触发mousemove事件(鼠标不动)

cur*_*ser 1 javascript webkit interactive javascript-events scrollto

我有一个幻灯片播放,滚动一个div来显示幻灯片中的下一张照片.我还有一个功能设置,当鼠标处于非活动状态时隐藏照片描述,但在鼠标移动时显示描述.

在Firefox中,没有问题,div滚动到新照片并且没有触发mousemove事件.但是,在Webkit中,鼠标在窗口上,但不活动,每当div滚动到一张新照片时,就会触发两到三个mousemove事件.

这是您浏览的网站.在webkit浏览器中导航到投资组合页面(我打开控制台打开),当照片循环播放时,该页脚应保持隐藏状态.http://96.0.13.132/

Iva*_*nos 13

是的,webkit浏览器就是这样做的,我认为每个浏览器都应该这样做.因为游标IS在滚动后不同的位置,这可能避免了我很多的问题,作为一个开发人员.

无论如何,如果你想在你的脚本中避免它的后果,只需记录最新的clientX和clientY位置,并检查自上次"mousemove"以来它们是否已经改变; 这样的事情:

window.addEventListener("mousemove",function(e){
    if(window.lastX !== e.clientX || window.lastY !== e.clientY){
        // Code when the (physical) mouse actually moves
    }   
    window.lastX = e.clientX
    window.lastY = e.clientY
})
Run Code Online (Sandbox Code Playgroud)