2013-06-20 22 views
24

Với jQuery, bạn sẽ tìm thấy vị trí bù tương đối so với một vùng chứa cụ thể như thế nào?jQuery Nhận bù đắp hàng đầu tương đối so với một div cụ thể

Ví dụ, bạn có điều này:

<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> 

(Các padding và margin-top của chỉ có các ví dụ.)

Làm thế nào bạn sẽ kiểm tra vị trí hàng đầu của #ELEMENT để # top-container?

Tôi đã thử sử dụng bù đắp và vị trí của jQuery, nhưng dường như không nhận được độ lệch chính xác mà tôi đang tìm kiếm.

Trả lời

42

Sử dụng $.offset(), ví dụ

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

Làm việc hoàn hảo, cảm ơn bạn! :) –

+0

Ý tưởng tuyệt vời! Weel thực hiện – Polaris

+0

nó hoạt động cho tôi ... cảm ơn – Rajaraman

Các vấn đề liên quan