我正在播放幻灯片,滚动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
})