当鼠标通过jquery从页面顶部离开时检测

Lob*_*obe 8 javascript jquery cross-browser

这个Jquery问题一直困扰着我一段时间.我开发了一个脚本,其中一个功能可以检测鼠标何时从页面顶部离开.这是代码:

    $(document).bind("mouseleave", function(e)
    {
    console.log(e.pageY);
    if (e.pageY <= 1)
        {    
        now = new Date();           
        for (i=0; i < times.length; i++)
            {
            if (now.getTime() > times[i][0] && now.getTime() < times[i][1])
                {
                    $.fn.colorbox({iframe:true, width:650, height:600, href: "work.html", open: true});          
                }    
            }
        }
    });
Run Code Online (Sandbox Code Playgroud)

这适用于所有浏览器.出于某种原因,它在Chrome中随机工作,在Firefox中对于测试该网站的朋友来说似乎完全没有.在我的浏览器(firefox 3.5.3)中,e.pageY在控制台框中记录为0附近的数字,但在我的朋友浏览器(也是firefox 3.5.3)中,最低值约为240.我不知道为什么这样正在考虑相同的浏览器.有没有人知道如何调试这个,或者另一个更可靠的方法来检测鼠标何时通过顶部退出网页?我希望这是有道理的.

Mot*_*tie 13

如果您的窗口向下滚动,<br/>向您的页面添加一堆s并向下滚动一行就会出现问题,您将看到它.

因此,不要查看e.pageY <= 1,而是减去scrollTop:

if (e.pageY - $(window).scrollTop() <= 1)
    {    
    // do something
    }
Run Code Online (Sandbox Code Playgroud)