jQuery를 사용하여 일부 컨테이너에 드롭 할 수있는 드래그 가능한 요소 집합을 구현했습니다. 필요한 것은 사용자 상호 작용없이 요소를 특정 컨테이너로 이동시키는 애니메이션입니다. 문제는 요소와 놓기 컨테이너가 DOM의 다른 부분 인 에 있고 대부분 float을 사용하여 배치되어 있다는 것입니다.JavaScript를 사용하여 DOM 요소 2 개 사이의 상대 위치 얻기
내가 선호하는 것은 2 개의 부동 DOM 요소 사이의 절대 위치 차이를 얻기위한 코드이다. 선호하는 것은 jQuery를 사용하는 것이다. 내가 발견 한 유일한 것은 위쪽으로 DOM을 구문 분석하는 해킹 이었지만 항상 브라우저와 관련이있었습니다 (예 : "Firefox 또는 IE 또는 기타와 잘 작동하지 않음"). 단지 API 고개, 그래서 당신이 다음을 수행 할 수 있습니다 가정 할 수있다,
var distance = $(element1).distanceTo($(element2));
.offset()은 부모 요소에 대한 상대 위치 만 반환하기 때문에 작동하지 않습니다. 부모 요소가 동일하지 않으므로 값을 사용할 수 없습니다. 대각선 거리 부분은 중요하지 않습니다. btw, 왼쪽 및 최고 값을 예상했습니다 .-) – davil
글쎄, 나는 당신과 동의하지 않을 것입니다. jQuery 참조 (http://docs.jquery.com/CSS)에 따르면 offset은 "뷰포트를 기준으로 첫 번째로 일치하는 요소의 현재 오프셋"을 가져옵니다. viewport가 핵심 단어이고, offsetParent가 아닙니다. –
오프셋 페이지의 예제는 오해의 소지가 있습니다. 예제는 iframe에로드되어 위치가 부모에만 상대적으로 보이지만 실제로는 문서 (이 경우 iframe)와 관련이 있습니다. – nickf