css - 如何正确使用 window.scrollY

标签 css reactjs typescript next.js

我只是不想在用户向上滚动时使用固定标题。但我的解决方案默认固定在顶部。

如果我默认使用固定,它会阻挡顶部的白色棍子。我尝试了 z-index 和其他东西。如果我给摇杆更多的 z 索引,它会阻止菜单。因此用户将无法单击菜单链接。

enter image description here

我可以在第一个 50px 高度之后激活 window.scroll 吗?

enter image description here

  const [direction, setDirection] = useState("up");

let oldScrollY = 0;

  const controlDirection = () => {
    if (window.scrollY > oldScrollY) {
      setDirection("down");
    } else {
      setDirection("up");
    }
    oldScrollY = window.scrollY;
  };

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

  return (
    <header
      className={styles.navbar}
      id={
        direction === "up"
          ? `${styles.fixed_navbar}`
          : direction === "down"
          ? `${styles.transparent__nav}`
          : ""
      }

最佳答案

您应该跟踪状态中 oldScrollY 的值。

关于css - 如何正确使用 window.scrollY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72806311/

相关文章:

javascript - 从 Typescript 中的对象数组中删除重复项

jquery - 我正在尝试做一个阅读更多按钮,但我刚开始使用 javascript/jquery

"Read More"的 HTML/CSS 可折叠按钮不起作用

jquery - 如何使用 gridstack.js 从本地存储设置小部件数据

javascript - 如何将变量的值从子组件发送到父组件?

arrays - typescript :对象数组的valueof字段

javascript - 复选框上的多行选择和单击 MUI DataGrid 中的行时的单一选择

css - Font Awesome : How to make the background-color out of the shape delimitation transparent?

javascript - 如何在html中使用两个组件

javascript - 在嵌套组件中响应访问状态