Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- es6
- 데이터베이스 #try #이중
- npm
- 10px
- 서버리스 #
- github
- 당근마켓
- ES5
- 0.25px border
- 클론코딩
- Strict
- 1px border
- 0.5px border
- angular
- 전역변수
- 문서번호
- TS
- Props
- literal
- &연산
- jwt
- TypeScript
- entity
- 타입스크립트
- ZOOM
- 컴포넌튼
- 0.75px border
- Websocket
- font-size
- 으
Archives
- Today
- Total
복잡한뇌구조마냥
[JavaScript] 스크롤 멈춤 감지 방법 & wheel vs scroll 이벤트 차이 본문
웹페이지에서 스크롤 이벤트를 다룰 때,
'스크롤이 멈췄을 때' 어떤 동작을 트리거해야 할 경우가 종종 있습니다.
또한 wheel 이벤트와 scroll 이벤트는 비슷해 보이지만 작동 방식에 차이가 있습니다.
아래에서 각각을 정리합니다.
scroll 이벤트 vs wheel 이벤트 차이
항목 | scroll 이벤트 | wheel 이벤 |
발생 시점 | 스크롤이 실제로 이동할 때 | 사용자가 마우스 휠을 돌릴 때 |
주요 대상 | 스크롤이 가능한 모든 요소 | 보통 브라우저 전체(window) 대상 |
이벤트 빈도 | 부드럽게 움직이는 동안 계속 발생 | 휠이 한번 돌아갈 때마다 발생 |
대표적 사용 사례 | 스크롤 트래킹, 스크롤 위치 감지 | 스크롤 시작 탐지, 커스텀 스크롤 |
터치스크린 지원 여부 | ✅ (터치 스크롤 감지 가능) | ❌ (마우스 휠에 한정) |
요약하자면, scroll은 해당 요소에 스크롤 동작이 감지되면 동작하고, wheel 이벤트는 마우스 wheel이 돌아가면 동작함.
스크롤 멈춤 감지 방법
스크롤 이벤트는 스크롤하는 동안 계속 발생합니다.
따라서 "스크롤이 멈췄다"는 걸 감지하려면 **타이머(debounce 기법)**를 이용해야 합니다.
scroll 이벤트를 활용한 예시
let isScrolling;
// 스크롤 이벤트 리스너
window.addEventListener('scroll', () => {
// 스크롤할 때마다 타이머를 초기화
clearTimeout(isScrolling);
// 300ms 이내에 추가 스크롤이 없으면 "멈춤"으로 간주
isScrolling = setTimeout(() => {
console.log('스크롤 멈춤 감지!');
// 여기에 멈췄을 때 실행할 로직 작성
}, 300);
});
설명:
- 스크롤 이벤트가 발생할 때마다 setTimeout을 초기화합니다.
- 마지막 스크롤 이후 300ms 동안 아무런 스크롤 이벤트가 없으면,
➔ 스크롤이 멈춘 것으로 간주합니다.
wheel 이벤트를 활용한 예시
let isWheeling
window.addEventListener('wheel', () => {
// 스크롤할 때마다 타이머를 초기화
clearTimeout(isWheeling);
// 300ms 이내에 추가 스크롤이 없으면 "멈춤"으로 간주
isWheeling = setTimeout(() => {
console.log('휠 멈춤 감지!');
// 여기에 멈췄을 때 실행할 로직 작성
}, 300);
});
참조 블로그:
https://inpa.tistory.com/entry/%F0%9F%9A%80-wheel-scroll-%EB%A9%88%EC%B6%A4-%EA%B0%90%EC%A7%80
🚀 마우스 wheel & scroll 이벤트 멈춤 감지하기
마우스 휠 & 스크롤 멈춤 감지 방법 사용자가 문서를 스크롤 하면 이벤트를 발생시키는데, 스크롤을 멈추면 이를 감지하여 스크립트 처리를 하고 싶은 상황이 있을 것이다. 마우스 스크롤을 감
inpa.tistory.com
LIST
'FE > JavaScript' 카테고리의 다른 글
[JavaScript] PDF 병합 (0) | 2024.03.04 |
---|---|
JavaScript 공부 ( 페이지 이동, 새 탭에서 열기, 새 창에서 열기 ) (0) | 2023.03.02 |
[JavaScript] ES문법, 메서드, Promise (0) | 2022.08.14 |
JavaScript 개념 알고 가기 (0) | 2022.08.06 |