$(document).ready(function(){
$(document).mouseleave(function(){
$('#desktop-subscribe-modal').modal('show');
});
});
我试图在鼠标离开文档窗口时触发一个函数。上面的代码在Firefox中运行良好,但在Chrome中,它会在将鼠标悬停在页面滚动条上时触发。
有没有办法从mouseleave函数中排除滚动条?
答案 0 :(得分:3)
好的,我通过在触发mouseleave时检查鼠标位置来解决这个问题。当鼠标悬停在视口上方时,我只需要触发它,所以我只检查垂直位置是否为< 0
$(document).ready(function(){
$(document).mouseleave(function(e){
//Check mouse is above the viewport
if(e.clientY < 0){
$('#desktop-subscribe-modal').modal('show');
}
});
});
答案 1 :(得分:1)
滚动条在技术上位于客户端窗口之外,因此所有浏览器应该执行此操作。有些人没有(所以,FireFox错了,而不是Chrome):)
然而,最好的解决方案是使用替换滚动条(Perfect scrollbar是我最喜欢的)。这些在页面内部使用元素,因此可以在所有浏览器上执行您想要的操作(并且看起来也很酷)。