Javascript при прокрутке и положении мыши

У меня есть скрипт, который запускает addEventListener для onmousemove и onscroll в теле документа, чтобы получить позицию курсора. Событие onmousemove работает нормально (клиент + прокрутка), однако, когда происходит событие onscroll, clientX/Y вместо этого наследует значения scrollTop/Left (только прокрутка). Есть ли способ обойти это?

clickDocument = (document.documentElement != undefined && document.documentElement.clientHeight != 0) ? document.documentElement : document.body;

var posx = 0;
var posy = 0;
if (e.pageX || e.pageY)     {
    posx = e.pageX;
    posy = e.pageY;
}
else if (e.clientX || e.clientY)    {
    posx = e.clientX;
    posy = e.clientY;
}

var scrollx = window.pageXOffset == undefined ? clickDocument.scrollLeft : window.pageXOffset;
var scrolly = window.pageYOffset == undefined ? clickDocument.scrollTop : window.pageYOffset;

person EddyR    schedule 10.04.2010    source источник


Ответы (1)


В зависимости от версии браузера IE и типа документа иногда требуется clickDocument.body.scrollTop или даже clickDocument.documentElement.scrollTop.

(Источник: http://javascript.about.com/library/blmousepos.htm )

person Ming-Tang    schedule 10.04.2010
comment
Это происходит в FF и Chrome. - person EddyR; 10.04.2010