jQuery position()

admin發表於2017-12-06
此方法獲取匹配元素相對某些元素的偏移量。

返回一個包含兩個整型屬性(top和left)的物件。

此方法只對可見元素有效。

特別說明:偏移是從匹配元素的margin外邊距開始計算的。

jQuery1.2版本新增。

語法結構:

[JavaScript] 純文字檢視 複製程式碼
$(selector).position()

偏移量參考原則如下:

(1).父輩元素中沒有采用定位的(position值為relative、absolute或者fixed),那麼偏移量參考物件為文件。

(2).父輩元素中有采用定位的,那麼偏移量的參考物件為距離它最近的採用定位的元素,

例項程式碼:

[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;
}
.father{
  background-color:green;
  width:200px;
  height:200px;
  padding:50px;
  margin-bottom:50px;
  margin-left:100px;
}
.children{
  height:150px;
  width:150px;
  background-color:red;
  line-height:150px;
  text-align:center;
}
</style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $(".children").each(function(){
   var text;
   text="left:"+$(this).position().left;
   text+="top:"+$(this).position().top;
   $(this).text(text);
  })
})
</script>
</head>
<body>
<div class="father" style="position:relative">
  <div class="children"></div>
</div>
<div class="father">
  <div class="children"></div>
</div>
</body>
</html>

頂部組合,由於父元素採用的是相對定位,那麼獲取的偏移量就是相對於父元素的。

底部組合,由於父元素沒有采用定位,那麼偏移量參考物件就是文件。

[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;
}
#father {
  width:200px;
  height:200px;
  background:red;
  overflow:hidden;
  margin:40px;
}
#child {
  width:150px;
  height: 100px;
  background: yellow;
  margin:30px;
   
}
</style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  var str="";
  str=str+"left:"+$("#child").position().left+"<br/>";
  str=str+"top:"+$("#child").position().top;
  $("#child").html(str);
})
</script>
</head>
<body>
<div id="father">
  <div id="child"></div>
</div>
</body>
</html>

由上面程式碼的結果可以看出,計算偏移量是從margin外邊距開始的。

相關文章