jQuery 「CSS操作」要素の位置表示を調べる

.offset()メソッドが画面の端からの位置を取得するのに対して、.position()メソッドは要素の親要素からの相対位置を返します。戻り値には、「top」と「left」の2つのプロパティが含まれます。対象要素のmargin、padding、borderの値にピクセル以外が指定されている場合(例えば「margin: 0 auto;」など)は、正しい位置が返されないことがあります。

書式

$( 対象要素 ).position();
var offset = $('#p:first').position();

サンプル

要素の表示位置を調べる

<html>
      <head>
        <meta charset="UTF-8">
        <title>テストページ</title>
        <script src="https://code.jquery.com/jquery-3.7.1.min.js" integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo=" crossorigin="anonymous"></script>
        <style>
          div{
            margin: 2px;
            padding: 10px;
            border: 2px gray solid;
            width: 300px;
          }
          p{
            width: 150px;
            height: 100px;
            border:2px pink solid;
            padding: 5px;
            margin: 10px;
            background-color: gray;
            color: white;
          }
        </style>
  </head>
  <body>
    <div>
      <p>Paragraph</p>
    </div>
    <span></span>
    <script>
      $(document).ready(function(){
        var pos = $('p').position();
        $('span').append('P要素は親要素から('+pos.left+','+pos.top+')の位置に表示されます。');
      });
    </script>
    </body>  
</html>
実行結果
実行結果