웹 애플리케이션에서 스크롤 이벤트를 처리하기 위해 Browser Object Model (BOM)을 사용할 수 있습니다. BOM은 웹 브라우저의 창(window)이나 프레임(frames)에 접근하여 제어할 수 있는 객체 모델을 제공합니다. 스크롤 이벤트를 처리하기 위해 BOM의 window
객체를 사용하면 됩니다.
스크롤 이벤트 등록하기
스크롤 이벤트를 등록하기 위해서는 window
객체의 addEventListener
메소드를 사용합니다. 이 메소드는 이벤트 이름과 이벤트가 발생했을 때 호출될 콜백 함수를 인자로 받습니다.
window.addEventListener('scroll', function() {
// 스크롤 이벤트 발생 시 실행할 코드 작성
});
위의 코드에서 scroll
이벤트가 발생하면 익명의 콜백 함수가 호출됩니다. 이 콜백 함수에서 스크롤 이벤트 처리에 필요한 코드를 작성하면 됩니다.
스크롤 위치 가져오기
스크롤 이벤트 처리에는 종종 현재 스크롤 위치를 알아야 할 때가 있습니다. BOM의 window
객체를 통해 현재 스크롤 위치를 가져올 수 있습니다.
window.addEventListener('scroll', function() {
var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
// 현재 스크롤 위치를 사용하는 코드 작성
});
위의 코드에서 scrollTop
변수에 현재 스크롤 위치를 저장하고 있습니다. 이 변수를 알맞게 활용하여 필요한 동작을 구현하면 됩니다.
스크롤 이벤트 제한하기
스크롤 이벤트는 사용자의 스크롤 동작에 의해 매우 빈번하게 발생할 수 있습니다. 때로는 이벤트 발생 빈도를 제한하는 것이 필요할 수 있습니다. 이를 위해 window
객체의 setTimeout
메소드를 사용하여 이벤트 발생 후 일정 시간이 지난 후에만 처리할 수 있도록 할 수 있습니다.
var scrolling = false;
window.addEventListener('scroll', function() {
if (!scrolling) {
scrolling = true;
setTimeout(function() {
// 스크롤 이벤트 처리
scrolling = false;
}, 200); // 200ms 후에 스크롤 이벤트 처리
}
});
위의 코드에서는 scrolling
변수를 사용하여 현재 스크롤 이벤트가 처리 중인지를 확인하고 있습니다. 일정 시간 후에 scrolling
변수를 다시 false
로 설정하여 다음 스크롤 이벤트를 처리할 수 있도록 하고 있습니다.
위에서 알아본 방식들을 활용하여 웹 애플리케이션에서 스크롤 이벤트를 처리할 수 있습니다. BOM을 사용하여 웹 브라우저의 스크롤 동작을 감지하고 원하는 동작을 수행할 수 있습니다.