Skip to content
On this page

useInViewport

Observe whether the element is in the visible area, and the visible area ratio of the element. More information refer to Intersection Observer API

Code demonstration

Default usage

Observe the visible area ratio of element

API

const [inViewport, ratio] = useInViewport(
  target,
  options?: Options
);
const [inViewport, ratio] = useInViewport(
  target,
  options?: Options
);

Params

PropertyDescriptionTypeDefault
targetDOM element or refElement | () => Element | MutableRefObject<Element>-
optionsSettingOptions-

Options

More information refer to Intersection Observer API

PropertyDescriptionTypeDefault
thresholdEither a single number or an array of numbers which indicate at what percentage of the target's visibility the ratio should be executednumber | number[]-
rootMarginMargin around the rootstring-
rootThe element that is used as the viewport for checking visibility of the target. Must be the ancestor of the target. Defaults to the browser viewport if not specified or if null.Element | Document | () => (Element/Document) | MutableRefObject<Element>-

Result

PropertyDescriptionType
inViewportIs visibleReadonly<Ref<boolean>> | undefined
ratioCurrent visible ratio, updated every time the node set by options.threshold is reachedReadonly<Ref<number>> | undefined

Source

SourceDocsDemo