ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [ JS ] 브라우저 창 사이즈와 스크롤
    Javascript/이론 2023. 4. 15. 20:57
    반응형

    브라우저 창 사이즈

      JS에서 브라우저 창의 너비와 높이를 얻기 위해서는 document.documentElement.clientHeight와 같이 window가 아닌 document.documentElement를 사용합니다. 그 이유는 window.innerHeight와 같은 방식이 스크롤바를 차지하는 영역을 고려하지 않기 때문입니다.

    • window.inner... : 전체 창 너비
    • document.documentElement.client... : 전체 창 너비 중 스크롤바가 차지한 영역을 제외한 너비

     

      문서 전체의 크기(가려져 있는 부분까지)를 구할 경우에 아래와 같이 구해야합니다. 그 이유는 아주 오래전부터 논리적이지 않은 방식이로 이어져온 것이기에 알아볼 필요가 없으니 그냥 받아들이시면 됩니다.

     

    let scrollHeight = Math.max(
      document.body.scrollHeight, document.documentElement.scrollHeight,
      document.body.offsetHeight, document.documentElement.offsetHeight,
      document.body.clientHeight, document.documentElement.clientHeight
    );

     

    스크롤 정보

      스크롤 정보는 scrollLeft, scrollTop으로 계산 가능하지만 브라우저간 호환성을 고려했을 때 window객체의 pageXOffset, pageYOffset을 사용하는게 추천됩니다. 이 두 프로퍼티는 모두 scrollLeft, scrollTop과 유사하게 스크롤링에 의해 가려진 영역의 크기를 반환합니다.

     

    스크롤 상태 변경

    • window.scrollBy(x, y) : 인자로 주어진 값만큼 현재 위치에서 상대적으로 변경
    • window.scrollTo(x, y) :  절대 좌표를 기준으로 페이지 스크롤 상태를 변경, 즉, 문서 전체의 왼쪽 위 모서리를 기준으로 인자로 주어진 (x, y)  좌표로 변
    • element.scrollintoView() : 이 메서드를 호출하면 페이지 스크롤이 움직여 대상 element가 눈에 보이도록 조정됩니다. 인수의 기본값은 true인데 이 경우 element가 창 상단 부분에 위치하며 false일 경우 창 하단에 위치합니다.
    • 스크롤을 막고 싶다면 document.body.style.overflow를 hitdden으로 설정합니다. 이때 스크롤바가 삭제되며 발생하는 너비의 변경은 padding을 스크롤바와 동일한 크기로 주어 막을 수 있습니다.
    반응형

    'Javascript > 이론' 카테고리의 다른 글

    [ JS ] 요소의 좌표  (0) 2023.04.15
    [ JS ] 요소의 크기와 상대위치  (0) 2023.04.15
    [ JS ] trigger HTTP request  (0) 2023.03.22
    [ JS ] 이벤트 버블링(Bubbling) & 캡쳐링(Capturing)  (0) 2023.03.11
    [ JS ] rotate3d 값 얻기  (0) 2023.02.08

    댓글

Designed by Tistory.