Questo problema di Jquery mi ha infastidito da un po 'di tempo. Ho sviluppato uno script, con una funzione che rileva quando il mouse esce dalla parte superiore della pagina. Ecco il codice:Rileva quando il mouse esce dalla parte superiore della pagina 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});
}
}
}
});
Questo funziona perfettamente per me in tutti i browser. Per qualche motivo funziona in modo casuale in Chrome e apparentemente non è affatto in Firefox per un amico che ha testato il sito. Nel mio browser (Firefox 3.5.3), e.pageY viene registrato nella casella della console come un numero vicino a 0, tuttavia nel browser dei miei amici (anche Firefox 3.5.3) il valore più basso è intorno a 240. Non ho idea del perché questo sta accadendo considerando browser identici. Qualcuno ha un indizio su come eseguire il debug di questo, o un altro metodo più affidabile per rilevare quando il mouse esce dalla pagina web tramite la parte superiore? Spero che abbia senso.
Hai provato a spostare il mouse veramente veloce? Gli eventi a volte non sparano se il mouse si muove rapidamente. – vava
Se si spostano molto rapidamente, registra la maggior parte del tempo (che non è davvero una preoccupazione). Tuttavia, per testare il mouse si sta muovendo estremamente lentamente – Lobe
@vava, sto solo dicendo che forse il tuo amico ha una macchina più lenta/schermo più grande e muove il mouse velocemente. Questa potrebbe essere la ragione della differenza. – vava