第一段代碼是利用全域變數來擷取即時滑鼠的位置。
複製代碼 代碼如下:var xPos;
var yPos;
window.document.onmousemove(function(evt){
evt=evt || window.event;
if(evt.pageX){
xPos=evt.pageX;
yPos=evt.pageY;
} else {
xPos=evt.clientX+document.body.scrollLeft-document.body.clientLeft;
yPos=evt.clientY+document.body.scrollTop-document.body.clientTop;
}
});
因為IE和Firefox對clientX的解析不一樣,IE認為clientX是滑鼠相對整個頁面左上方的位置,而Firefox認為是相對當前所見頁面左上方的位置。而這段代碼最終返回的結果是整個頁面左上方的位置。這段代碼的缺陷是,xPos和yPos是即時變動的。
第二段代碼是通過函數擷取當前時刻的滑鼠座標值
複製代碼 代碼如下:document.onmousemove = mouseMove;
function mouseMove(ev){
ev = ev || window.event;
var mousePos = mouseCoords(ev);
}
function mouseCoords(ev){
if(ev.pageX || ev.pageY){
return {x:ev.pageX, y:ev.pageY};
}
return {
x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,
y:ev.clientY + document.body.scrollTop - document.body.clientTop
};
}
這段代碼的來源是這裡,這個網站還提供了一些簡單的範例給我們玩耍。這個函數和剛才的函數理論是一致的,先觸發mousemove事件,然後擷取了事件之後,分別判斷瀏覽器類型。這段代碼的優點是,不適用全域變數,並且可以隨用隨拿,只要調用這個函數,就能夠擷取滑鼠座標。
這兩段代碼,個人偏好於後者,現在先把這段代碼記下來,這段代碼應該是會經常被使用到的。