如何获取Scroll组件的当前滚动偏移量
在React中,你可以使用useState
和useEffect
hooks 来获取Scroll组件的当前滚动偏移量。以下是一个示例代码:
import React, { useState, useEffect } from 'react';
function ScrollComponent() {
const [scrollPosition, setScrollPosition] = useState(0);
useEffect(() => {
const handleScroll = () => {
setScrollPosition(window.scrollY || document.documentElement.scrollTop);
};
window.addEventListener('scroll', handleScroll);
return () => window.removeEventListener('scroll', handleScroll);
}, []);
return (
<div>
<h1>Current Scroll Position: {scrollPosition}</h1>
<div style={{ height: '500px', overflowY: 'scroll' }}>
Scroll within this div to update the scroll position.
</div>
</div>
);
}
在上述代码中,我们首先使用useState
hook 创建了一个状态变量scrollPosition
来存储当前的滚动位置,并为其创建了一个更新函数setScrollPosition
。然后,在useEffect
hook 中,我们添加了一个滚动事件监听器,当页面滚动时,会调用handleScroll
函数来更新scrollPosition
状态。最后,我们在组件返回部分渲染了一个包含当前滚动位置的标题,并提供了一个可以滚动的div元素。
通过currentOffset方法可获取水平和竖直方向的滚动偏移量。
参考链接
Scroll