[javascript] jQuery를 사용하여 요소의 절대 위치를 어떻게 찾습니까?

jQuery를 사용하여 요소의 절대 위치, 즉 창 시작점을 기준으로 찾는 방법이 있습니까?



답변

.offset() 다음과 같이 요소의 오프셋 위치를 간단한 객체로 반환합니다.

var position = $(element).offset(); // position = { left: 42, top: 567 }

이 반환 값을 사용하여 다른 요소를 같은 지점에 배치 할 수 있습니다.

$(anotherElement).css(position)


답변

문서와 관련된$(element).offset() 요소의 위치 를 알려줍니다 . 이것은 대부분의 상황에서 훌륭하게 작동하지만 예기치 않은 결과를 얻을 수 있습니다.position:fixed

문서가 뷰포트보다 길고 문서 아래쪽으로 세로로 스크롤 한 경우 스크롤 한 양만큼 position:fixed요소의 offset() 예상 값 보다 큽니다 .

position : fixed 요소의 문서가 아닌 뷰포트 (창)에 상대적인 값을 찾는 경우 고정 요소의 scrollTop()값에서 문서의 값을 뺄 수 있습니다 offset().top. 예:$("#el").offset().top - $(document).scrollTop()

만약 position:fixed 요소의 오프셋 (offset) 부모가이다 문서 , 당신이 읽고 싶은 parseInt($.css('top'))대신.


답변