2013-06-20 47 views
24

使用jQuery,您將如何找到相對於特定容器的偏移位置?jQuery獲取相對於特定div的頂部偏移

例如,你有這樣的:

<body style="padding:20px"> 
<div id="top-container" style="margin-top:20px"> 
    <div id="one-level-container" style="margin-top:70px"> 
     <div id="two-level-container" style="margin-top:120px"> 
      <div id="ELEMENT" style="margin-top:10px"> 
      </div> 
     </div> 
    </div> 
</div> 
</body> 

(填充和邊距的只是那裏的例子。)

你將如何檢查#ELEMENT的位置上方#頂層容器?

我試過使用jQuery的偏移量和位置,但這些似乎並沒有得到正在尋找的正確偏移量。

回答

42

使用$.offset(),例如

alert($("#ELEMENT").offset().top - $("#top-container").offset().top)
body { 
 
    background: blue 
 
} 
 

 
div { 
 
    padding: 20px 
 
} 
 

 
#top-container { 
 
    background: green 
 
} 
 

 
#one-level-container { 
 
    background: red 
 
} 
 

 
#two-level-container { 
 
    background: black 
 
} 
 

 
#ELEMENT { 
 
    background: orange 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
 
<body style="padding:20px"> 
 
<div id="top-container" style="margin-top:20px"> 
 
    <div id="one-level-container" style="margin-top:70px"> 
 
     <div id="two-level-container" style="margin-top:120px"> 
 
      <div id="ELEMENT" style="margin-top:10px"> 
 
      </div> 
 
     </div> 
 
    </div> 
 
</div> 
 
</body>

+1

運行完美,謝謝! :) –

+0

絕妙的主意!完成了 – Polaris

+0

它適用於我......謝謝 – Rajaraman

相關問題