js和jq中常見的各種位置距離之offset()和position()的區別(二)


offset()返回的是相對於當前文檔的坐標,position()返回的是相對於其定位的祖輩元素的坐標。

 使用position()方法時事實上是把該元素當絕對定位來處理,獲取的是該元素相當於最近的一個擁有絕對或者相對定位的父元素的偏移位置。

 使用position()方法時如果其所有的父元素都為默認定位(static)方式,則其處理方式和offset()一樣,是當前窗口的相對偏移,此時如果子元素沒有margin,則兩者值相同,如果有margin,兩者的差值就是子元素的margin值。

 使用offset()方法不管該元素如何定位,也不管其父元素如何定位,都是獲取的該元素相對於當前窗口的偏移坐標

附上調試代碼:

 1     <style>
 2         *{ margin:0; padding:0;}
 3         #parent{ position:relative; height: 300px; width: 300px; padding: 10px; margin:30px; background-color:#ccc; border: solid 10px #fbc;}
 4         #child{ height: 200px; width: 200px; padding: 10px; margin: 30px; border: 10px solid #fbc;background-color:#afb;}
 5     </style>
 6     <body>
 7         <div id="parent"> 
 8             <div id="child">
 9             </div>
10         </div>
11     </body>
12     <script src="jquery_1.11.3.min.js"></script>
13     <script>
14 
15 
16         console.log( $("#child").offset().left);
17         console.log( $("#child").position().left);
18     </script>

 

注:此文為原創,如需轉載請注明出處。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM