Любое DOM-событие содержит в себе информацию о том, где находился указать мышки в момент возникновения этого события. Беда в том, что в различных браузерах эти поля называются по-разному и содержат информацию в различных системах отчета.
Эта функция нормализует информацию и приводит координаты в одну систему отсчета — относительно левого верхнего угла страницы.
function (e) {
var point = {};
if (e.pageX && e.pageY) {
point.x = e.pageX;
point.y = e.pageY;
} else {
point.x = e.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft);
point.y = e.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);
}
return point;
}
Если используется jQuery, то аналогичные данные можно получить из полей pageX и pageY объекта, который передается в обработчик обытия.
Коментарии к заметке
При использовании jQuery все события уже имеют нормализованные значения pageX и pageY