跳转到内容

useInViewport ​

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

代码演示 ​

基础用法 ​

监听元素可见区域比例 ​

API ​

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

源码 · 文档 · 示例

基于 MIT 许可发布