如何使用javascript / jquery检查鼠标是否退出浏览器窗口?

我需要一种方法来检查并查看鼠标是否在浏览器窗口之外。 问题是当鼠标RAPIDLY移动到浏览器窗口之外时(我的元素靠近边缘),不会触发mouseout事件(或mousemove)。 我认为解决我的问题的最好方法是检查一个计时器,如果鼠标在窗口内,或者我没有找到一种方法,因为我需要一个事件来触发以获得鼠标坐标。

我是一个javascript / jquery新手,但似乎应该有办法做到这一点但我到目前为止肯定无法找到它。 也许我可以强制触发一个鼠标事件,看看是否有任何xy值? 知道我怎么能这样做吗?

提前致谢!

好像@Joshua Mills在这里解决了这个问题:

  • 如何检测鼠标何时离开窗口?

虽然从未正式选择作为答案。

您需要检查事件的目标,以确保鼠标离开整个页面。

现场演示

JS

 $(function() { var $window = $(window), $html = $('html'); $window.on('mouseleave', function(event) { if (!$html.is(event.target)) return; $('.comeback').removeClass('hidden'); }); $window.on('mouseenter', function(event) { $('.comeback').addClass('hidden'); }); }); 

HTML

 
Test
Come back!
Test

CSS

 .hidden { display: none; } 

测试用例包括一些元素嵌套以validation它是否真的有效。

我想,这看起来像

        

它应该很简单:

 document.onmouseout = function() { alert('out'); }; 

或jQuery风格:

 $(document).mouseout(function() { alert('out'); }); 

小提琴: http : //jsfiddle.net/xjJAB/

在IE8,chrome,FF中测试过。 该事件至少每次都会触发我。

试试:

 document.addEventListener("mouseleave", function(e){ if( e.clientY < 0 ) { alert("I'm out!"); } }, false);