Skip to content

useInView

@hua-labs/hua/motion

bash
npm install @hua-labs/hua
tsx
import { useInView } from "@hua-labs/ui";

const { ref, inView } = useInView({ threshold: 0.5 });

return (
  <div ref={ref}>
    {inView ? 'In view!' : 'Not in view'}
  </div>
);

const { ref, inView } = useInView({
  triggerOnce: true,
  threshold: 0.3
});

return (
  <div ref={ref} className={inView ? 'animate-fade-in' : 'opacity-0'}>
    Animates once when visible
  </div>
);

thresholdnumber | number[]0Intersection observer threshold (0-1)
rootMarginstring"0px"IntersectionObserver root margin
triggerOncebooleanfalseOnly trigger once when entering viewport
initialInViewbooleanfalseInitial inView state before observation

refRefObject<T | null>Ref to attach to observed element
inViewbooleanWhether element is in viewport
entryIntersectionObserverEntry | nullLatest IntersectionObserver entry