我正在播放幻灯片,滚动div以显示幻灯片中的下一张照片。我还有一个功能设置,可以在鼠标不活动时隐藏照片描述,而在鼠标移动时显示描述。

在Firefox中,没有问题,div滚动到新照片,并且不会触发mousemove事件。但是,在Webkit中,将鼠标置于窗口上,但处于非活动状态,每次div滚动到一张新照片时,都会触发两三个mousemove事件。

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

最佳答案

是的,Webkit浏览器可以做到这一点,我认为每个浏览器都应该这样做。由于光标在滚动后位于不同的位置,因此可以避免开发人员遇到很多问题。

无论如何,如果要避免在脚本中导致这种情况,只需记录最新的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
})

09-25 18:17
查看更多