【问题标题】:Javascript mouseleave/mouseenter won't fire while left button held down?按住左键时Javascript mouseleave / mouseenter不会触发?
【发布时间】:2017-08-01 05:12:49
【问题描述】:

正如标题所说;我有一个 javascript mouseleave 和 mouseenter 事件,但是当按住鼠标左键时它们不会触发(如果按住中键或右键它们运行良好)。为什么?有没有办法?

document.onmouseleave = function(e){
    e = e || window.event;
    console.log(e.which);
}
document.onmouseenter = function(e){
    e = e || window.event;
    console.log(e.which);
}

【问题讨论】:

    标签: javascript button mouse mouseenter


    【解决方案1】:

    这是因为您在按住鼠标左键时选择了文本。

    【讨论】:

    • 我想过,但我尝试将其添加到 body body{ background-color:#999; 上的 css溢出:隐藏; -webkit-touch-callout:无; -webkit 用户选择:无; -khtml-用户选择:无; -moz 用户选择:无; -ms 用户选择:无;用户选择:无; } 这没有帮助..
    • @user3591153 在这种情况下 CSS 不会影响 JavaScript。
    • 有什么建议吗?
    • 不,据我所知你不能
    【解决方案2】:

    !!所以我有了一个使用 div 的想法,并通过一些实验找到了解决方法!

    我在正文中添加了一个 div

    <div id="bodyBlock"></div>
    

    然后我添加一些 css

    body, html {
        height: 100%;
        padding:0px;
        margin:0px;
    }
    
    #bodyBlock{
        width:100%;
        height:100%;
        position: absolute;
        border:0px none #000;
        background-color:#111;
        z-index:-10;
    }
    

    现在可以了! 似乎 div 阻止了对 body 的点击,当鼠标离开/进入时,它会在按住时记录左键(以及其他按钮)!

    【讨论】:

      猜你喜欢
      • 2011-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-04
      相关资源
      最近更新 更多