Javascript在IE或Firefox下擷取滑鼠位置的代碼

來源:互聯網
上載者:User

第一段代碼是利用全域變數來擷取即時滑鼠的位置。 複製代碼 代碼如下: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事件,然後擷取了事件之後,分別判斷瀏覽器類型。這段代碼的優點是,不適用全域變數,並且可以隨用隨拿,只要調用這個函數,就能夠擷取滑鼠座標。

這兩段代碼,個人偏好於後者,現在先把這段代碼記下來,這段代碼應該是會經常被使用到的。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.