Get scrolling direction

PHOTO EMBED

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