답변:
.offset()
다음과 같이 요소의 오프셋 위치를 간단한 객체로 반환합니다.
var position = $(element).offset(); // position = { left: 42, top: 567 }
이 반환 값을 사용하여 다른 요소를 같은 지점에 배치 할 수 있습니다.
$(anotherElement).css(position)
offset()
있으며 올바른 상단 좌표를 반환하지 않습니다. 대신 문서에서 요소의 상단 좌표보다 약 300 픽셀 이상을 반환합니다. 왜??
문서와 관련된$(element).offset()
요소의 위치 를 알려줍니다 . 이것은 대부분의 상황에서 훌륭하게 작동하지만 예기치 않은 결과를 얻을 수 있습니다.position:fixed
문서가 뷰포트보다 길고 문서 아래쪽으로 세로로 스크롤 한 경우 스크롤 한 양만큼 position:fixed
요소의 offset()
값 이 예상 값 보다 큽니다 .
position : fixed 요소의 문서가 아닌 뷰포트 (창)에 상대적인 값을 찾는 경우 고정 요소의 scrollTop()
값에서 문서의 값을 뺄 수 있습니다 offset().top
. 예:$("#el").offset().top - $(document).scrollTop()
만약 position:fixed
요소의 오프셋 (offset) 부모가이다 문서 , 당신이 읽고 싶은 parseInt($.css('top'))
대신.
$(document).scrollTop()