唯一合理跨瀏覽器的方法來檢測鼠標位置是clientX
/clientX
(相對於窗口),screenX
/screenY
(相對於整個屏幕)和pageX
/pageY
(相對於記錄,但不是在IE8和下方支撐)。
Quirksmode表明,這種標準化的相對到文檔值:
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
}
那麼你可以使用this工作出位置相對其對你的元素。
可怕的我知道,但互聯網是一個可怕的地方。
對不起,但這似乎沒有得到始終與layerX和layerY相同的值...看起來我們必須繼續尋找解決方案... –
也許函數名稱應該是'getLayerXY' – aztack
只是爲了完成答案,注意'var x = y = 0',因爲你聲明'y'是全局的。 – fmvilas