Implementé un conjunto de elementos arrastrables que se pueden soltar en algunos contenedores usando jQuery. Lo que necesito es una animación que mueva un elemento a un contenedor específico sin interacción del usuario. El problema es que los elementos y los contenedores de caída se encuentran por completo en diferentes partes del DOM y se posicionan principalmente con flotador.Obtener la posición relativa entre 2 elementos DOM usando JavaScript
Todo lo que necesito es un código para obtener la diferencia de posición absoluta entre 2 elementos DOM flotantes, preferiblemente usando jQuery. Lo único que encontré fueron algunos hacks analizando el DOM, pero siempre muy específicos del navegador (por ejemplo, "esto no funciona bien con Firefox o IE o lo que sea").
Mejor sería algo como esto:
var distance = getDistance(element1, element2);
o en notación jQuery:
var distance = $(element1).distanceTo($(element2));
Esto no funcionará porque .offset() solo devuelve la posición relativa al elemento principal. Como los elementos principales no son los mismos, los valores no se pueden usar. La parte de distancia diagonal no es importante por cierto, esperaba valores superiores e inferiores ;-) – davil
Bueno, no estoy de acuerdo con usted. De acuerdo con la referencia jQuery (http://docs.jquery.com/CSS), el desplazamiento obtiene "el desplazamiento actual del primer elemento coincidente relativo a la ventana gráfica". viewport es la palabra clave, no es el offsetParent –
El ejemplo en la página de compensación es bastante engañoso. Los ejemplos se cargan en iframes, lo que hace que parezca que la posición es solo relativa al padre, mientras que en realidad es relativa al documento (en este caso, el iframe) – nickf