JavaScript獲取滑鼠在文件中座標

螞蟻小編發表於2018-06-02

在一些拖動等效果中,經常需要獲得滑鼠在文件中的座標,下面通過程式碼例項介紹一下如何實現此功能。

程式碼例項如下:

[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:1200px;
}
#antzone {
  width:100px;
  height:50px;
  position:fixed;
  top:50px;
  left:10px;
  background:#ccc;
  font-size:12px;
  text-align:center;
}
</style>
<script>
window.onload = function () {
  var odiv = document.getElementById("antzone");
  document.onmousemove = function (ev) {
    var str = "橫座標:" + ev.pageX+"<br/>";
    var str = str + "縱座標:" + ev.pageY;
    odiv.innerHTML = str;
  }
}
</script>
</head>
<body>
<div id="antzone"></div>
</body>
</html>

上面的程式碼可以獲取滑鼠在文件中的座標。

但是程式碼有一個問題,那就是不相容IE9以下的瀏覽器,下面再分享一段程式碼例項,它實現了相容。

程式碼例項如下:

[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:1200px;
}
#antzone {
  width:100px;
  height:50px;
  position:fixed;
  top:50px;
  left:10px;
  background:#ccc;
  font-size:12px;
  text-align:center;
}
</style>
<script>
function mousePosition(ev) {
  if (!ev) ev = window.event;
  if (ev.pageX || ev.pageY) {
    return { x: ev.pageX, y: ev.pageY };
  }
  return {
    x: ev.clientX + document.documentElement.scrollLeft - document.body.clientLeft,
    y: ev.clientY + document.documentElement.scrollTop - document.body.clientTop
  };
};
window.onload = function () {
  var odiv = document.getElementById("antzone");
  document.onmousemove = function (ev) {
    var positionObj = mousePosition(ev);
    var str = "橫座標:" + positionObj.x + "<br/>";
    var str = str + "縱座標:" + positionObj.y;
    odiv.innerHTML = str;
  }
}
</script>
</head>
<body>
<div id="antzone"></div>
</body>
</html>

上面的程式碼實現了相容所有瀏覽器的功能,程式碼相對比較簡單。

相關閱讀:

(1).相容瀏覽器的事件物件參閱var ev=window.event||ev的作用是什麼一章節。

(2).clientX參閱JavaScript event.clientX屬性一章節。

(3).scrollLeft參閱JavaScript scrollLeft一章節。

(4).onmousemove事件參閱mouseleave事件一章節。

(5).innerHTML參閱innerHTML一章節。

相關文章