javascript獲取元素距離網頁頂部的距離

antzone發表於2017-04-13

本章節分享一段程式碼例項,它實現了獲取元素距離網頁頂部距離的功能。

程式碼例項如下:

[HTML] 純文字檢視 複製程式碼
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<style>
* {
  padding:0px;
  margin:0px;
}
#antzone {
  width:200px;
  height:100px;
  background:#ccc;
  margin-top:100px;
  margin-left:200px;
  text-align:center;
  line-height:100px;
}
</style>
<script>
window.onload = function () {
  function getDistanceOfLeft(obj) {
    var left = 0;
    var top = 0;
    while (obj) {
      left += obj.offsetLeft;
      top += obj.offsetTop;
      obj = obj.offsetParent;
    }
    return {
      left:left,
      top:top
    };
  }
  var odiv = document.getElementById("antzone");
  odiv.innerHTML = getDistanceOfLeft(odiv).top;
}
</script>
</head>
<body>
<div id="antzone"></div>
</body>
</html>

本章節分享一段程式碼例項,它實現了獲取元素距離網頁頂部的距離。

一.程式碼註釋:

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

(2).function getDistanceOfLeft(obj) {},引數是要獲取距離的元素物件。

(3).var left = 0,宣告一個變數並賦值為0,用來儲存元素距離網頁左端的距離。

(4).while (obj) {

  left += obj.offsetLeft;

  top += obj.offsetTop;

  obj = obj.offsetParent;

}通過迴圈方式,不斷判斷獲取元素距離上級元素頂端的距離,然後不斷累加。

(5).return {

  left:left,

  top:top

},返回一個物件,裡面儲存了元素距離網頁上部和左部的距離。

二.相關閱讀:

(1).offsetLeft可以參閱offsetleft屬性一章節。

(2).offsetParent可以參閱js offsetParent屬性一章節。

相關文章