如何使用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);