【问题标题】:Webkit firing mousemove event unexpectedly (mouse not moving)Webkit 意外触发 mousemove 事件(鼠标不移动)
【发布时间】:2012-02-04 09:53:51
【问题描述】:

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

在 Firefox 中,没有问题,div 滚动到新照片并且没有触发 mousemove 事件。然而,在 Webkit 中,鼠标在窗口上但不活动,每次 div 滚动到新照片时都会触发两到三个 mousemove 事件。

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

【问题讨论】:

  • 为了将来参考,您应该先发布网站,这样您的问题就不会同时获得投票结束。

标签: javascript webkit dom-events interactive scrollto


【解决方案1】:

是的,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
})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-18
    • 1970-01-01
    • 2021-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多