무기

<Web> TIL: 사이즈, 좌표, 스크롤

디벅잉 2021. 12. 4. 00:09
728x90

 

🐣

 

브라우저의 크기 측정

// 모니터 크기 가로, 세로
window.screen.width, window.screen.height

// 브라우저 창 전체 폭, 높이
window.outerWidth, window.outerHeight

// 브라우저 창 내부 폭, 높이 (작업표시줄 제외됨)
window.innerWidth, window.innerHeight

// 브라우저 창 내부 폭, 높이 (작업표시줄, 스크롤 부분 제외됨, 실제 눈에 보이는 부분만 측정)
document.documentElement.clientWidth, document.documentElement.clientHeight

 

브라우저의 좌표 다루기

clientX/Y: 브라우저 창 내부 보이는 부분 기준으로 측정

pageX/Y: 스크롤이 여부랑 상관없이 페이지의 맨 처음 위치를 기준으로 측정

const screen = document.querySelector('.screen');
document.addEventListener('mousemove', function logKey(e) {
  screen.innerText = `
  Client X/Y: ${e.clientX}, ${e.clientY}
  Page X/Y: ${e.pageX}, ${e.pageY}
  `;
});

 

스크롤 다루기

window.scrollBy()

주어진 수치만큼 스크롤

window.scrollTo()

주어진 수치로 스크롤

element.scrollIntoView()

대상 위치로 스크롤

window.scrollBy({ top: 100, left: 100, behavior: 'smooth' });
window.scrollTo( x-coord, y-coord );
element.scrollIntoView({ behavior: "smooth", block: "end" });

매개변수로 behavior, block 등의 옵션값을 줄 수 있다.

 

728x90