Skip to content
On this page

useInViewport

观察元素是否在可见区域,以及元素可见比例。更多信息参考 Intersection Observer API

代码演示

基础用法

监听元素可见区域比例

API

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

Params

参数说明类型默认值
targetDOM 节点或者 refElement | () => Element | MutableRefObject<Element>-
options设置Options-

Options

更多信息参考 Intersection Observer API

参数说明类型默认值
threshold可以是单一的 number 也可以是 number 数组,target 元素和 root 元素相交程度达到该值的时候 ratio 会被更新number | number[]-
rootMargin根(root)元素的外边距string-
root指定根(root)元素,用于检查目标的可见性。必须是目标元素的父级元素,如果未指定或者为 null,则默认为浏览器视窗。Element | Document | () => (Element/Document) | MutableRefObject<Element>-

Result

参数说明类型
inViewport是否可见Readonly<Ref<boolean>> | undefined
ratio当前可见比例,在每次到达 options.threshold 设置节点时更新Readonly<Ref<number>> | undefined

Source

源码文档示例