由滚动条触发的Jquery mouseleave文档

$(document).ready(function(){ $(document).mouseleave(function(){ $('#desktop-subscribe-modal').modal('show'); }); }); 

我试图在鼠标离开文档窗口时触发一个函数。 上面的代码在Firefox中运行良好,但在Chrome中,它是在鼠标hover在页面滚动条上时触发的。

有没有办法从mouseleave函数中排除滚动条?

好的,我通过在触发mouseleave时检查鼠标位置来解决这个问题。 当鼠标hover在视口上方时,我只需要触发它,所以我只检查垂直位置是否<0。

 $(document).ready(function(){ $(document).mouseleave(function(e){ //Check mouse is above the viewport if(e.clientY < 0){ $('#desktop-subscribe-modal').modal('show'); } }); }); 

滚动条在技术上位于客户端窗口之外,因此所有浏览器都应该这样做。 有些人没有(真的,FireFox错了,不是Chrome):)

然而,最好的解决方案是使用替换滚动条( 完美滚动条是我最喜欢的)。 这些在页面内部使用元素,因此可以在所有浏览器上执行您想要的操作(并且看起来也很酷)。