jQuery庫中操作頁面元素的CSS樣式有一個position()函數。position()函數用于返回當前匹配元素相對于其被定位的祖輩元素的偏移,也就是相對于被定位的祖輩元素的坐標。該函數只對可見元素有效。返回的對象包含兩個整型屬性:top 和 left。
所謂"被定位的元素",就是元素的CSS position屬性值為absolute、relative或fixed(只要不是默認的static即可)。該函數返回一個坐標對象,該對象有一個left屬性和top屬性。屬性值均為數字,它們都以像素(px)為單位。
與offset()不同的是:position()返回的是相對于被定位的祖輩元素的坐標,offset()返回的是相對于當前文檔的坐標。此外,position()函數無法用于設置操作。如果當前元素的祖輩元素全部都是默認定位(static),那么該函數返回的偏移位置與offset()函數相同。
position()函數的返回值為Object類型,返回一個相對于離它最近的"被定位的"祖輩元素的偏移坐標對象。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>position()函數</title>
</head>
<body>
<script src="js/jquery-3.2.1.js"></script>
<p id="one" style="position:relative"><sapn id="two">Hello</sapn></p>
<script>
var x = $("#two").position();
alert("頂部位置: " + x.top +","+ "左部位置: " + x.left);
</script>
</body>
</html>

position函數.png