Get scrolling direction
Wed Feb 15 2023 10:11:18 GMT+0000 (Coordinated Universal Time)
Saved by
@avivdaniel
#javascript
const [scrollStatus, setScrollStatus] = useState({
scrollDirection: null,
scrollPos: 0
});
useEffect(() => {
if (innerRef.current) {
innerRef.current.addEventListener("scroll", handleScrollDocument);
}
return () =>
innerRef?.current.removeEventListener("scroll", handleScrollDocument);
}, []);
function handleScrollDocument() {
if (!innerRef?.current) return;
setScrollStatus((prev) => {
// to get 'previous' value of state
return {
scrollDirection:
innerRef.current.scrollTop > prev.scrollPos ? "down" : "up",
scrollPos: innerRef.current.scrollTop
};
});
}
content_copyCOPY
Comments