兼容性寫法獲取鼠標座標

首先:算法

先對比一下pagexX,clientX,screenX,offsetX幾個的區別瀏覽器

pageX/pageY:鼠標相對於整個頁面的X/Y座標
整個頁面:整個網頁的所有,好比當網頁很寬很長,寬2000px,高3000px, pageX/pageY的最大值就是他們。
ClientX/clientY :事件發生時鼠標瀏覽器內容區域的X/Y座標
screenX/screenY:鼠標在屏幕上的座標
offsetX/offsetY: 只有IE支持,至關於IE下的pageX,pageY

所能獲得下面這種算法:
e.clientX+document.documentElement.scrollLeft- document.documentElement.clientLeft =e.pageX
e.clientY+document.documentElement.scrollTop-document.documentElement.clientTop = e.pageYcode

想要忽略滾動因素,獲取相對於文檔(body)的座標時,
Firefox下支持pageX與pageY屬性,這兩個屬性已經把滾動計算在內了。
Chrome下能夠經過document.body.scrollLeft,document.body.scrollTop計算出頁面滾動位移,
IE下經過document.documentElement.scrollLeft,document.documentElement.scrollTop
因此綜合Code以下:事件

function getMousePos(event){
       var e = event || window.event;
       var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;
       var scrollY = document.documentElement.scrollTop || document.body.scrollTop;
       var x = e.pageX || e.clientX + scrollX;
       var y = e.pageY || e.clientY + scrollY;
       return { 'x':x,'y':y };
   }
   var mousePos = getMousePos(event);
   console.log(mousePos.x,mousePos.y);
相關文章
相關標籤/搜索