首頁  >  文章  >  web前端  >  jQuery之Position方法使用方法和相容性詳解

jQuery之Position方法使用方法和相容性詳解

小云云
小云云原創
2017-12-30 14:10:131436瀏覽

本文主要和大家分享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>

相關推薦:

CSS定位position及應用場景實例分析

css的position怎麼使用

CSS position屬性實例詳解

#

以上是jQuery之Position方法使用方法和相容性詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn