本文主要和大家分享jQuery Position方法使用和相容性的相關知識,position方法取得匹配元素相對父元素的偏移。有興趣的朋友一起看看吧,希望能幫助大家。
1、position方法
jquery api位址:http://jquery.cuishifeng.cn/position.html
position方法取得匹配元素相對父元素的偏移。
2、說明
2.1 與offset()區別
.offset()是取得該元素相對於documet的目前座標
.position( )方法可以取得元素相對於父元素的偏移位置,父元素為該元素最近的而且被定位過的祖先元素。
2.2 值計算
.元素本身所佔用的邊框,邊距和填滿的大小不計。
.父元素的邊框和邊距不計,父元素的填滿計算在內。
3、範例程式碼
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>jQuery position()示例</title> <style> html { line-height: 1.15; } /*父元素--相对定位*/ .parent { position: relative; width: 200px; height: 400px; /*父元素的margin不计算在内*/ margin-top: 10px; /*父元素的border不计算在内*/ border: 1px solid green; /*父元素的padding计算在内*/ padding-top: 10px; } .child-1 { width: 100px; height: 100px; margin: 0 auto; border: 1px solid #2E8DED; } .child-2 { width: 100px; height: 100px; /*子元素的margin不计算在内*/ margin: 10px auto 0; /*子元素的border不计算在内*/ border: 1px solid #2E8DED; /*子元素的padding不计算在内*/ padding: 10px; } </style> </head> <body> <p class="parent"> <p class="child-1"> first child </p> <p class="child-2" id="no-2"> second child </p> </p> <script src=".output/js/jquery-1.12.4.min.js" type="text/javascript" charset="utf-8"></script> <script type="text/javascript"> $(document).ready(function() { //获取child-2子元素距离父元素的距离 console.log($('#no-2').position().top); }); </script> </body> </html>
4、注意
對於文字的line-height等屬性,瀏覽器(chrome、IE、Firefox)預設大小不一致,因此不同的瀏覽器position()在計算尺寸時會存在不一致,因此必須保證所有瀏覽器一致的line-height等屬性。
範例程式碼為沒有設定line-height的例子,position()在不同的瀏覽器上計算出的值不一樣。
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>jQuery position()示例</title> <style> html { /*必须给予一致的设置,否则position()计算值不同*/ /*line-height: 1.15;*/ } /*父元素--相对定位*/ .parent { position: relative; width: 200px; height: 400px; /*父元素的margin不计算在内*/ margin-top: 10px; /*父元素的border不计算在内*/ border: 1px solid green; /*父元素的padding计算在内*/ padding-top: 10px; } .child-1 { width: 100px; height: 100px; margin: 0 auto; border: 1px solid #2E8DED; } .child-2 { width: 100px; height: 100px; /*子元素的margin不计算在内*/ margin: 10px auto 0; /*子元素的border不计算在内*/ border: 1px solid #2E8DED; /*子元素的padding不计算在内*/ padding: 10px; } </style> </head> <body> <p class="parent"> 文字文字 <p class="child-1"> first child </p> <p class="child-2" id="no-2"> second child </p> </p> <script src=".output/js/jquery-1.12.4.min.js" type="text/javascript" charset="utf-8"></script> <script type="text/javascript"> $(document).ready(function() { //获取child-2子元素距离父元素的距离 console.log($('#no-2').position().top); }); </script> </body> </html>
相關推薦:
以上是jQuery之Position方法使用方法和相容性詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!