반응형
div가 맨 위에 있는지 아니면 다른 html element에 가려져 있는지 알고 싶을 때 다음과 같이 하면 됩니다.
1. getBoundingClientRect로 위치를 구한다.
2. 확인하고 싶은 좌표를 선택한다.
3. 좌표에 있는 최상위 element를 찾는다.
4. 내 element와 최상위 element가 같은지 확인한다.
위와 같은 단계를 거치면 됩니다.
id가 container이 div의 우측 하단 코너가 현재 화면에 보여지는지 확인하는 예를 들어보겠습니다.
const _id = "container";
const _container = document.getElementId("container");
const _rect = _container.getBoundingClientRect();
const _x = _rect.right;
const _y = _rect.bottom;
const _topElement = document.elementFromPoint(_x, _y);
if(_container.isSameNode(_topElement)) {
console.log("container가 제일 위에 있습니다.");
} else {
console.log("container가 제일 위에 있지 않습니다.");
}
팝업 메뉴가 스크린 표시 범위를 벗어나는지 확인하는 용도로 사용해봤습니다.
_x, _y 위치는 확인하고 싶은 좌표로 변경하면 됩니다.
반응형
'JavaScript' 카테고리의 다른 글
Firebase Hosting (0) | 2024.11.08 |
---|---|
크롬에서 다크 모드(dark mode) 테스트 하는 방법. prefers-color-scheme. (0) | 2024.07.09 |
아직 까지 console.log 만 사용하시나요??? (0) | 2022.09.28 |
중첩된 div에서 마우스 클릭 이벤트 전달 방지. (0) | 2021.12.15 |
css 속성 값으로 계산 식 넣기. (0) | 2021.12.09 |