div $container
이 position: relative
이고 div가 $foo
이고 position: absolute
인 경우를 가정 해 봅시다. 컨테이너에 상대적인 $foo
의 위치를 얻고 싶습니다. jQuery를이 쉽게 : 픽셀 단위로 지정 top
와 left
특성을 가진 개체를 반환jQuery에서 스크롤 가능한 영역 내에서 요소의 절대 위치를 얻으려면 어떻게해야합니까?
$foo.position()
합니다. 문제는 컨테이너를 아래로 스크롤하거나 오른쪽으로 스크롤하면이 번호가 더 이상 정확하지 않습니다. 특히, 변경해서는 안된다. jQuery는 $foo.offset() - $container.offset()
(여기서 offset()
은 윈도우 상대 위치를 나타냄)과 동일하고 $container
주위를 스크롤 할 때 $foo.offset()
이 변경되도록 position()
을 계산합니다.
네, 맞습니다. 제 질문이 잘못 표현되었습니다 ... '$ 컨테이너'에 대한 핸들이 없다고 가정 해 봅시다. 그 때 무엇? 즉,'$ .fn.positionInRelativeContainer()'함수를 어떻게 정의하겠습니까? –
@ Trevor, 친숙한 부모를 찾기 위해 코드를 추가했습니다. –
두 가지 이유로 코드가 작동하지 않을 것이라고 생각합니다. 첫째,'|| 위치 === '절대'는 오타입니다. 맞습니까? 두 번째로, 가장 친숙한 부모가 아닌 모든 친척의 부모를 반환합니다. 잠재적으로 여러 개의 중첩 된 스크롤 요소가있는 경우 각각에서 scrollLeft() 및 scrollTop()을 추가하려고한다고 가정합니다. 이는 계산 비용이 많이 든다. 사용자가 스크롤 할 때 실시간으로 계산을 다시하고 싶다면 문제가된다. –