Skip to content

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 ​

typescript
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 ​

Source ¡ Document ¡ Demo

Released under the MIT License.