Este problema de Jquery me ha estado molestando por un tiempo. Desarrollé un script, con una función que detecta cuándo el mouse se va por la parte superior de la página. Aquí está el código:Detecta cuando el mouse sale por la parte superior de la página con 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});
}
}
}
});
Esto funciona perfectamente para mí en todos los navegadores. Por alguna razón, funciona aleatoriamente en Chrome y aparentemente no en absoluto en Firefox para un amigo que probó el sitio. En mi navegador (Firefox 3.5.3), e.pageY se registra en la consola como un número cerca de 0, sin embargo, en el navegador de mis amigos (también Firefox 3.5.3) el valor más bajo está alrededor de 240. No tengo idea de por qué esto está sucediendo considerando navegadores idénticos. ¿Alguien tiene una pista sobre cómo depurar esto u otro método más confiable para detectar cuándo el mouse sale de la página web por la parte superior? Espero que esto tenga sentido.
¿Ha intentado mover el ratón muy rápido? Los eventos a veces no se activan si el mouse se mueve rápidamente. – vava
Si se mueve muy rápido, registra la mayor parte del tiempo (eso no es realmente una preocupación). Sin embargo, para probar el mouse se mueve extremadamente despacio – Lobe
@vava, solo digo que tal vez su amigo tiene una máquina/pantalla más lenta y mueve el mouse rápidamente. Esa podría ser la razón de la diferencia. – vava