【发布时间】:2023-03-17 03:14:01
【问题描述】:
我正在创建消息传递功能。对话只占用 100vh 高度减去标题 - 所以,我必须将其溢出设置为滚动。如何检测用户是否滚动到对话的最顶部?一旦用户滚动到顶部,我将获取较旧的消息。
我做了一些研究,但没有一个有效。我认为它们只适用于可滚动页面。
下面的代码 sn-p 类似于我在网上看到的。但是,滚动永远不会被触发。
const top_ref = React.useRef < HTMLDivElement > null;
const trackScrolling = () => {
console.log("scrolling");
};
React.useEffect(() => {
document.addEventListener("scroll", trackScrolling);
return () => {
document.removeEventListener("scroll", trackScrolling);
};
});
【问题讨论】:
-
为此使用developer.mozilla.org/en-US/docs/Web/API/IntersectionObserver。检查元素是否相交,如果是 -> 获取更多消息。
-
我来看看 Intersection Observer。谢谢!
-
Intersection Observer 有效。非常感谢!
标签: javascript html reactjs