The only reasonably cross-browser ways to detect mouse position are clientX
/clientY
(relative to window), screenX
/screenY
(relative to entire screen) and pageX
/pageY
(relative to document, but not supported in IE8 and below).
Quirksmode suggests this for standardising to a relative-to-document value:
function doSomething(e) {
var posx = 0;
var posy = 0;
if (!e) var e = window.event;
if (e.pageX || e.pageY) {
posx = e.pageX;
posy = e.pageY;
}
else if (e.clientX || e.clientY) {
posx = e.clientX + document.body.scrollLeft
+ document.documentElement.scrollLeft;
posy = e.clientY + document.body.scrollTop
+ document.documentElement.scrollTop;
}
// posx and posy contain the mouse position relative to the document
// Do something with this information
}
Then you could use this to work out its position relative to your element.
Horrible, I know, but the internet's a horrible place.