2012-10-01 5 views
5

Also habe ich ein Div in dem anderen - wie kann ich Abstand zwischen ihnen bekommen?Wie bekomme ich die Distanz zwischen zwei Divs?

buttons

Ich habe versucht, so etwas wie $('#child').parentsUntil($('#parent')).andSelf() - aber es gibt ein Objekt, keinen Abstand.

P.S. Ich brauche es, um andere Knöpfe zu drücken.

+0

'.position()' funktioniert nicht? –

+0

Versuchen Sie mit '$ (" # child "). Position(). Left" zu testen und subtrahieren Sie '$ (" # parent "). Position(). Left' von diesem Wert. – VisioN

Antwort

4

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

den linken Abstand bekommen Sie verwenden können:

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

, dass der Abstand in px in Bezug auf den Offset-Mutter

wenn Sie interessiert sind in die zurückkehren Element-Seiten-Offset als:

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

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

0

Haben Sie etwas wie?

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

können Sie offset

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

'offset()' ist IMHO die beste Lösung, da es sogar in der Lage ist, den Abstand zwischen zwei völlig unverwandten Objekten zu erhalten: 'Funktionsabstand (el1, el2) {var o1 = $ (el1) .offset(); var o2 = $ (el2) .offset(); return {links: o2.left - o1.left, oben: o2.top - o1.top}; } ' – Mark

Verwandte Themen