小编Sus*_*ain的帖子

为什么向后滚动时该元素变得固定但不是相对的?

我试图创建一个元素位置:“固定”,在它滚动到屏幕末尾后,每当它返回到第一个屏幕时,它应该再次获得“相对”位置,但状态正在更改为 true (固定)当它滚动到屏幕末尾但当它向后滚动时,它不会更改为 false (相对)。

const [fixed, setFixed] = useState(() => {
    return false;
  });
const scrollHandler = () => {
    if (window.scrollY > window.innerHeight) {

      if (!fixed) {
       
        setFixed(true);
      }
    } else {
      if (fixed) {
        setFixed(false);
      }
    }
  };
  useEffect(() => {
    window.addEventListener("scroll", scrollHandler);

    return () => {
      window.removeEventListener("scroll", scrollHandler);
    };
  }, []);

return (
    <>
      <div
        style={{ position: `${fixed ? "fixed" : "relative"}` }}
        className={classes.navigationBelt}
      ></div>
 </> );
Run Code Online (Sandbox Code Playgroud)

这是代码解释我将状态命名为“fixed”并将初始值设置为“false”

const [fixed, setFixed] = useState(() => {
    return …
Run Code Online (Sandbox Code Playgroud)

javascript frontend reactjs react-hooks

5
推荐指数
1
解决办法
92
查看次数

标签 统计

frontend ×1

javascript ×1

react-hooks ×1

reactjs ×1