Programing/javascript

자바스크립트 실무 유틸 함수 시리즈 18 - 스크롤 관련 유틸

2025. 5. 1. 12:20
반응형

이번 18편에서는 브라우저 스크롤과 관련된 유용한 유틸 함수들을 소개합니다. 스크롤 위치 확인, 부드러운 이동, 하단 감지 등 사용자 경험을 높이는 데 필수적인 기능들을 다룹니다.


✅ 1. getScrollPosition (현재 스크롤 위치 확인)

📌 페이지의 수직 스크롤 위치 반환

function getScrollPosition() {
  return window.pageYOffset || document.documentElement.scrollTop;
}

📌 활용 예시

(예: 페이지 스크롤 위치에 따라 상단 고정 메뉴 표시 여부 결정)

if (getScrollPosition() > 100) {
  document.querySelector('header').classList.add('fixed');
}

✅ 2. scrollToTop (페이지 상단으로 스크롤)

📌 부드럽게 최상단으로 이동

function scrollToTop() {
  window.scrollTo({ top: 0, behavior: 'smooth' });
}

📌 활용 예시

(예: 하단 이동 후 '맨 위로' 버튼 클릭 시)

const btn = document.querySelector('.scroll-top');
btn.addEventListener('click', scrollToTop);

✅ 3. scrollToElement (특정 요소로 스크롤)

📌 요소로 부드럽게 스크롤 이동

function scrollToElement(selector) {
  const el = document.querySelector(selector);
  if (el) {
    el.scrollIntoView({ behavior: 'smooth' });
  }
}

📌 활용 예시

(예: 네비게이션 클릭 시 해당 섹션으로 이동)

scrollToElement('#section2');

✅ 4. isScrollBottom (페이지 하단 도달 여부 확인)

📌 스크롤이 하단에 도달했는지 판단

function isScrollBottom(threshold = 10) {
  return window.innerHeight + window.scrollY >= document.body.offsetHeight - threshold;
}

📌 활용 예시

(예: 무한 스크롤에서 다음 데이터 요청 시점 감지)

window.addEventListener('scroll', () => {
  if (isScrollBottom()) {
    loadMoreContent();
  }
});

✅ 5. lockScroll / unlockScroll (스크롤 잠금/해제)

📌 페이지 스크롤 막기 및 해제

function lockScroll() {
  document.body.style.overflow = 'hidden';
}

function unlockScroll() {
  document.body.style.overflow = '';
}

📌 활용 예시

(예: 모달 열기 시 배경 스크롤 차단)

const modal = document.querySelector('.modal');
modal.classList.add('open');
lockScroll();

✅ 결론

스크롤 관련 처리는 인터랙션과 사용자 경험에 큰 영향을 미칩니다. 이번 시리즈에서 다룬 함수들을 통해 스크롤 제어를 더 유연하고 정교하게 구성할 수 있습니다.

반응형

'Programing > javascript' 카테고리의 다른 글

자바스크립트 실무 유틸 함수 시리즈 22 - URL 및 쿼리 파라미터 처리 유틸  (0) 2025.05.01
자바스크립트 실무 유틸 함수 시리즈 21 - 정규 표현식을 활용한 유틸  (0) 2025.05.01
자바스크립트 실무 유틸 함수 시리즈 20 - 배열 비교 및 동기화를 위한 유틸  (0) 2025.05.01
자바스크립트 실무 유틸 함수 시리즈 19 - 로컬 스토리지 / 세션 스토리지를 위한 유틸  (0) 2025.05.01
자바스크립트 실무 유틸 함수 시리즈 17 - 이벤트 제어를 위한 유틸  (0) 2025.05.01
자바스크립트 실무 유틸 함수 시리즈 16 - HTML 요소 조작을 위한 유틸  (0) 2025.05.01
자바스크립트 실무 유틸 함수 시리즈 15 - 폼 입력 검증을 위한 유틸  (1) 2025.05.01
자바스크립트 실무 유틸 함수 시리즈 14 - 반응형 UI 구현을 위한 유틸  (0) 2025.05.01
'Programing/javascript' 카테고리의 다른 글
  • 자바스크립트 실무 유틸 함수 시리즈 20 - 배열 비교 및 동기화를 위한 유틸
  • 자바스크립트 실무 유틸 함수 시리즈 19 - 로컬 스토리지 / 세션 스토리지를 위한 유틸
  • 자바스크립트 실무 유틸 함수 시리즈 17 - 이벤트 제어를 위한 유틸
  • 자바스크립트 실무 유틸 함수 시리즈 16 - HTML 요소 조작을 위한 유틸
Dongkkase
Dongkkase
개발자로 일하면서 부딪히는 문제풀이가 누군가에게 도움이 되길 바라며
    반응형
  • Dongkkase
    정집사의 개발로그
    Dongkkase
  • 전체
    오늘
    어제
    • All (478)
      • 금융 (61)
      • Programing (295)
        • Algorithm (39)
        • API (2)
        • javascript (122)
        • CSS (8)
        • HTML (10)
        • PHP (15)
        • JAVA (27)
        • JSP (17)
        • JSP 예제 (1)
        • IOS (1)
        • Android (1)
        • Sencha Touche (1)
        • bat file, cmd (0)
        • 디버깅 (2)
        • SQL (21)
        • MS-SQL (1)
        • MySQL (13)
        • 보안 (5)
      • Server (14)
        • Docker (1)
        • Windows (9)
        • Linux (3)
        • jeus (1)
      • Database (6)
      • IT 일반 (15)
      • 리뷰 (38)
        • Book (17)
        • 제품 (2)
        • 영화 소개 (11)
        • 음악 소개 (7)
      • 잡생각 (36)
        • 회고 (3)
        • 컬럼 (4)
        • 자료실 (6)
        • 낙서장 (12)
        • 위시리스트 (2)
        • WOW (1)
        • 덕 (1)
  • 인기 글

  • 최근 댓글

  • 태그

    JavaScript
    IT 관련
    IT블로그
    iT's MY LiFE
    디자인패턴
    php
    SQL
    It
    js패턴
    자바스크립트유틸
    위시리스트
    읽고 싶은 책
    Java
    자바
    블로그
    기초
    자바스크립트
    IT·컴퓨터
    jsp
    사고 싶은 책
Dongkkase
자바스크립트 실무 유틸 함수 시리즈 18 - 스크롤 관련 유틸
상단으로

티스토리툴바