스크롤될 영역의 크기를 구하기 위해 요소 노드의 사이즈 관련 프로퍼티를 사용했는데 이름도 비슷하고 속성이 많아서 처음에 외울 때 어려웠는데 여러 번 보다보니 금방 외울 수 있었다.
일정한 주기마다 이벤트를 발생시키는 방법
마우스 휠을 한번만 움직여도 스크롤 이벤트가 많이 발생하는데 그러면 성능상에 좋지 않기 때문에 이벤트를 매번 발생시키는게 아니라 예를 들어 몇 초에 한번씩 발생시키는걸로 제어할 수 있다.
let timerId;
const throttle = (callback, time) => {
if (timerId) clearTimeout(timerId);
timerId = setTimeout(() => callback(), time);
};
window.addEventListener('scroll', () => throttle(onScroll, 30));