Skip to content
Docs
훅으로 돌아가기

useScrollToggle

@hua-labs/hua/motion

스크롤 위치 기반 상태 토글 — 헤더 숨김/표시, FAB 버튼용

설치

bash
npm install @hua-labs/hua
Import
tsx
import { useScrollToggle } from "@hua-labs/hua/framework";

@hua-labs/motion-core의 모션 훅을 @hua-labs/hua/framework에서 통합 제공합니다.

UI 컴포넌트, 모션 훅, i18n을 하나의 패키지로 사용할 수 있습니다.

기본 사용법

tsx
const toggle = useScrollToggle({
  hideOpacity: 0,
  hideTranslateY: 20,
  scrollThreshold: 0.1,
});

return (
  <div ref={toggle.ref} style={toggle.style}>
    Appears when scrolled into view
  </div>
);

라이브 데모

현재 스크롤 위치

0px

토글 상태

비활성

헤더 데모

Header상단 - 투명
스크롤하여 200px 임계값을 테스트하세요

FAB 버튼 데모

FAB 숨겨짐 (상단에서)

API 레퍼런스

옵션

이름타입기본값설명
showOpacitynumber1docs:hooks.use-scroll-toggle.options.showOpacity
hideOpacitynumber0docs:hooks.use-scroll-toggle.options.hideOpacity
showScalenumber1docs:hooks.use-scroll-toggle.options.showScale
hideScalenumber0.8docs:hooks.use-scroll-toggle.options.hideScale
showTranslateYnumber0docs:hooks.use-scroll-toggle.options.showTranslateY
showRotatenumber0docs:hooks.use-scroll-toggle.options.showRotate
showTranslateXnumber0docs:hooks.use-scroll-toggle.options.showTranslateX
hideTranslateYnumber20docs:hooks.use-scroll-toggle.options.hideTranslateY
hideRotatenumber0docs:hooks.use-scroll-toggle.options.hideRotate
hideTranslateXnumber0docs:hooks.use-scroll-toggle.options.hideTranslateX
scrollThresholdnumber0.1docs:hooks.use-scroll-toggle.options.scrollThreshold
scrollDirection"up" | "down" | "both""both"docs:hooks.use-scroll-toggle.options.scrollDirection
durationnumber300docs:hooks.use-scroll-toggle.options.duration
easingstring"ease-out"docs:hooks.use-scroll-toggle.options.easing
onComplete() => void-docs:hooks.use-scroll-toggle.options.onComplete
onStart() => void-docs:hooks.use-scroll-toggle.options.onStart
onStop() => void-docs:hooks.use-scroll-toggle.options.onStop
onReset() => void-docs:hooks.use-scroll-toggle.options.onReset

반환값

이름타입설명
refRefObject<T | null>docs:hooks.use-scroll-toggle.returns.ref
styleCSSPropertiesdocs:hooks.use-scroll-toggle.returns.style
isVisiblebooleandocs:hooks.use-scroll-toggle.returns.isVisible
isAnimatingbooleandocs:hooks.use-scroll-toggle.returns.isAnimating
progressnumberdocs:hooks.use-scroll-toggle.returns.progress
start() => voiddocs:hooks.use-scroll-toggle.returns.start
stop() => voiddocs:hooks.use-scroll-toggle.returns.stop
reset() => voiddocs:hooks.use-scroll-toggle.returns.reset
pause() => voiddocs:hooks.use-scroll-toggle.returns.pause
resume() => voiddocs:hooks.use-scroll-toggle.returns.resume

사용 사례

맨 위로

스크롤 시 맨 위로 버튼 표시

스티키 헤더

스크롤 시 헤더 스타일 변경

스크롤 기반 UI

스크롤 위치에 따른 UI 변화

지연 로딩

뷰포트 진입 시 콘텐츠 로드