如何在特定高度显示元素并使用ReactJ保持粘性?

发布于 2025-02-09 17:39:25 字数 1923 浏览 0 评论 0原文

我有一个粘性的下拉菜单,需要在滚动的一定高度上显示。

我正在使用reactjs,我尝试的是以下代码:

  const [stickyPillMenu, setStickyPillMenu] = useState(false);

    useEffect(() => {
   function handleSitckyPillMenu () {
        if (window.screenY >= 300) {
            setStickyPillMenu(true)
        } else {
            setStickyPillMenu(false)
        }
    }
    window.addEventListener("scroll", handleSitckyPillMenu)

    }, [])

渲染代码:

return (
      <div>
          <div className={stickyPillMenu ? "absolute top-0" : "flex sticky top-0 z-10 h-full"}>
            <div className="flex flex-col float-right ml-auto mt-1" style={{ marginRight: '6px' }}>
                <div className="p-2 m-1 px-2 text-yagya-red-color bg-white border-2 rounded-full border-yagya-red-color">
                    <img className="h-5 w-5" src="../img/icons/Language.png" alt="" />
                </div>
                <div className="p-2 m-1 px-2 text-yagya-red-color bg-white border-2 rounded-full border-yagya-red-color">
                    <a href="/login.html"> <img className="h-5 w-5" src="../img/icons/LoginRed.png" alt="" />
                    </a>
                </div>
                <div className="p-2 m-1 px-2 text-yagya-red-color bg-white border-2 rounded-full border-yagya-red-color">

                    <a href="/made4me.html"> <img className="h-5 w-5" src="../img/icons/StarPointer.png" alt="" />
                    </a>
                </div>
                <div className="p-2 m-1 px-2 text-yagya-red-color bg-white border-2 rounded-full border-yagya-red-color">
                    <img className="h-5 w-5" src="../img/icons/HeartRed.png" alt="" />
                </div>
            </div>
        </div>
      </div>

    )

任何建议,请:)

I have a sticky drop-down menu that needs to be displayed at a certain height on the scroll.

I am using reactjs, and what I tried is the following code:

  const [stickyPillMenu, setStickyPillMenu] = useState(false);

    useEffect(() => {
   function handleSitckyPillMenu () {
        if (window.screenY >= 300) {
            setStickyPillMenu(true)
        } else {
            setStickyPillMenu(false)
        }
    }
    window.addEventListener("scroll", handleSitckyPillMenu)

    }, [])

Render code:

return (
      <div>
          <div className={stickyPillMenu ? "absolute top-0" : "flex sticky top-0 z-10 h-full"}>
            <div className="flex flex-col float-right ml-auto mt-1" style={{ marginRight: '6px' }}>
                <div className="p-2 m-1 px-2 text-yagya-red-color bg-white border-2 rounded-full border-yagya-red-color">
                    <img className="h-5 w-5" src="../img/icons/Language.png" alt="" />
                </div>
                <div className="p-2 m-1 px-2 text-yagya-red-color bg-white border-2 rounded-full border-yagya-red-color">
                    <a href="/login.html"> <img className="h-5 w-5" src="../img/icons/LoginRed.png" alt="" />
                    </a>
                </div>
                <div className="p-2 m-1 px-2 text-yagya-red-color bg-white border-2 rounded-full border-yagya-red-color">

                    <a href="/made4me.html"> <img className="h-5 w-5" src="../img/icons/StarPointer.png" alt="" />
                    </a>
                </div>
                <div className="p-2 m-1 px-2 text-yagya-red-color bg-white border-2 rounded-full border-yagya-red-color">
                    <img className="h-5 w-5" src="../img/icons/HeartRed.png" alt="" />
                </div>
            </div>
        </div>
      </div>

    )

Any suggestion, please:)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文