차이점은 무엇이며 position()
그리고 offset()
? 클릭 이벤트에서 다음을 시도했습니다.
console.info($(this).position(), $(this).offset());
그리고 그들은 정확히 똑같이 반환하는 것 같습니다 … (클릭 된 요소는 테이블의 테이블 셀 내에 있습니다)
답변
동일한 지 여부는 상황에 따라 다릅니다.
-
position
오프셋 부모를 기준으로{left: x, top: y}
객체를 반환합니다. -
offset
문서를 기준으로{left: x, top: y}
객체를 반환합니다 .
분명히, 문서가 오프셋 부모 인 경우가 종종 있습니다. 오프셋 부모 “가장 가까운 위치 함유 요소”이다.
예를 들어이 문서에서
<div style="position: absolute; top: 200; left: 200;">
<div id="sub"></div>
</div>
그러면 $('#sub').offset()
의지가 {left: 200, top: 200}
되겠지만, .position()
의지가 될 것입니다 {left: 0, top: 0}
.
답변
.offset () 메소드는 우리 소자의 현재 위치를 검색 할 수있는 문서에 대하여 . 이것을 오프셋 parent와 관련된 현재 위치 를 검색하는 .position () 과 대조하십시오 . 전역 조작 (특히, 끌어서 놓기 구현)을 위해 기존 요소 위에 새 요소를 배치 할 경우 .offset ()이 더 유용합니다.
답변
두 함수 모두 너비와 높이라는 두 가지 속성을 가진 일반 객체를 반환합니다.
offset ()은 문서를 기준으로 한 위치를 나타냅니다.
position ()은 부모 요소와 관련된 위치를 나타냅니다.
그러나 객체의 CSS 위치가 “절대”인 경우 두 함수 모두 너비 = 0 및 높이 = 0을 반환합니다.