javascript獲取滑鼠指標在整個頁面中的座標位置

antzone發表於2017-04-04

本章節分享一段程式碼例項,它實現了能夠獲取滑鼠座標在整個頁面中的座標。

這個座標也包括滾動條部分的尺寸,程式碼例項如下:

[HTML] 純文字檢視 複製程式碼
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<style type="text/css">
*{
  margin:0px;
  padding:0px;
}
body{height:1500px;}
#antzone{
  width:200px;
  height:200px;
  background-color:#ccc;
  margin:0px auto;
  position:fixed;
  left:50%;
  top:100px;
  margin-left:-100px;
  text-align:center;
}
#show{
  width:150px;
  margin:0px auto;
}
</style>
<script type="text/javascript">
window.onload=function(){
  var odiv=document.getElementById("antzone");
  function getX(ev) {
    var ev = ev || window.event;
    return ev.pageX || ev.clientX + document.body.scrollLeft;
  }
  function getY(ev) {
    var ev = ev || window.event;
    return ev.pageY || ev.clientY + document.body.scrollTop;
  }
  odiv.onmousemove=function(ev){
    var ev=window.event||ev;
    this.innerHTML="X:"+getX(ev)+" Y:"+getY(ev)+"";
  }
}
</script>
</head>
<body>
<div id="antzone"></div>
</body>
</html>

上面的程式碼實現了我們的要求,下面介紹一下它的實現過程。

一.程式碼註釋:

(1).window.onload=function(){},當文件內容完全載入完畢再去執行函式中的程式碼。

(2).var odiv=document.getElementById("antzone"),獲取id屬性值為antzone的元素物件。

(3).function getX(ev){},此方法可以獲取滑鼠指標的水平座標位置,引數是事件物件。

(4).var ev = ev || window.event,相容所有瀏覽器的事件物件。

(5).return ev.pageX || ev.clientX + document.body.scrollLeft,如果瀏覽器支援pageX屬性,則直接使用此屬性,否則就使用在客戶區的座標再加上向左滾動的尺寸。

二.相關閱讀:

(1).var ev = ev || window.event可以參閱var ev=window.event||ev的作用是什麼一章節。

(2).clientX屬性可以參閱javascript clientX一章節。

(3).scrollLeft屬性可以參閱js scrollLeft一章節。

相關文章