2012-10-01 29 views
5

Tengo un div dentro del otro, ¿cómo puedo obtener distancia entre ellos?Cómo obtener la distancia entre dos divs

buttons

he intentado algo así como $('#child').parentsUntil($('#parent')).andSelf() - pero devuelve un objeto, no una distancia.

P.S. Lo necesito para presionar otros botones.

+0

'.position()' no funciona? –

+0

Intenta hacer la prueba con '$ (" # child "). Position(). Left' y si es necesario reste' $ ("# parent"). Position(). Left' desde este valor. – VisioN

Respuesta

4

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

para obtener la distancia izquierda se puede utilizar:

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

que devolverá la distancia en px en relación con el padre de compensación

si está interesado en el offset de página del elemento que:

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

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

0

¿Has probado algo como?

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

Puede utilizar offset

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

'offset()' es en mi humilde opinión la mejor solución, ya que incluso es capaz de obtener la distancia entre dos objetos completamente no relacionados: 'distancia de función (el1, el2) {var o1 = $ (el1) .offset(); var o2 = $ (el2) .offset(); return {left: o2.left - o1.left, arriba: o2.top - o1.top}; } ' – Mark

Cuestiones relacionadas