2012-10-01 14 views
5

Więc mam jednego div wewnątrz drugiego - jak mogę uzyskać odległość między nimi?Jak uzyskać odległość między dwoma divami

buttons

Próbowałem coś jak $('#child').parentsUntil($('#parent')).andSelf() - ale zwraca obiekt, a nie odległość.

P.S. Potrzebuję tego, żeby naciskać inne przyciski.

+0

'.position()' nie działa? –

+0

Spróbuj przetestować z '$ (" # child "). Position(). Left' iw razie potrzeby odejmij' $ ("# parent"). Position(). Left' od tej wartości. – VisioN

Odpowiedz

4

http://api.jquery.com/position/

dostać lewą odległości można użyć:

var distLeft = $('#child').position().left; 

To powróci dystans w stosunku do px offsetowej rodzica

jeśli jesteś zainteresowany w przesunięcie strony elementu niż:

var offsLeft = $('#child').offset().left; 

http://api.jquery.com/offset/

0

Czy próbowałeś czegoś?

$('innerDiv').position().left; 
2

Można użyć offset

var childOffset = $('#child').offset(), parentOffset = $('#child').parentsUntil($('#parent')).offset(); 
    var leftDistance =childOffset.left - parentOffset.left; 
    var topDistance = childOffset.top- parentOffset.top; 
+2

'offset()' jest IMHO najlepszym rozwiązaniem, ponieważ jest nawet w stanie uzyskać odległość między dwoma zupełnie niezwiązanymi obiektami: 'odległość funkcji (el1, el2) {var o1 = $ (el1) .offset(); var o2 = $ (el2) .offset(); return {left: o2.left - o1.left, top: o2.top - o1.top}; } ' – Mark

Powiązane problemy