How can I detect a mouse leaving a page by moving up to the address bar?

javascript, jquery, jquery-events

Solution

Old Question, but I think I should share my code also, maybe someone finds it useful.

$(function(){
    var mouseY = 0;
    var topValue = 0;
    window.addEventListener("mouseout",function(e){
        mouseY = e.clientY;
        if(mouseY<topValue) {
            alert("Do something here!!!");
        }
    },
    false);
});

JSFIDDLE Link

Problem

I have created a jQuery event that pops up a dialog when a visitor is leaving a page. I am using the e.pageY to detect the mouse position. when the mouse is at Y: less than 2, the dialog pops up. the problem is, when the I scroll down through the page and decided to leave the page, the pop up does not show since the mouse is not at Y: less than 2. How can I fix that. i.e. when I leave the page and just hover over the address bar, a pop up appears despite scrolling down. Here my code and a working example at the bottom. ``` var mouseLastYPos = null; $(document).mousemove(function(e){ if(mouseLastYPos){ if (e.pageY < mouseLastYPos && e.pageY <= 2){ $('#mystuff').show(); } } mouseLastYPos = e.pageY; });​ ``` Working example: http://jsfiddle.net/bmHbt/

Original source