小编iam*_*tor的帖子

如何在反应中的滚动上创建粘性导航栏

我正在尝试在用户向下滚动时向网站的导航栏添加粘性导航栏效果。即当浏览器向下滚动一定高度时,我希望导航栏固定在页面顶部

我正在尝试用反应钩子来实现这个。这是导航栏的代码

导航栏.js

   import { useEffect, useState } from "react";

    const NavBar = () => {
    // sticky nav
    const [stickyClass, setStickyClass] = useState("");

    function stickNavbar() {
        let windowHeight = window.scrollY;
        setStickyClass("sticky-nav") ? windowHeight > 500 : setStickyClass("");
    }

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

return (
        <nav className="relative w-full p-4">
            <div className={`flex w-full flex-row items-center justify-between ${stickyClass}`}>
             navbar content goes here ....
            <div/>
<nav/>

Run Code Online (Sandbox Code Playgroud)

我使用 tailwindcss 进行样式设置,因此没有外部样式表,但是该类sticky-nav应用了 tailwindcss 的一些实用程序类。

组件.css

/* Navbar */
.sticky-nav {
    @apply …
Run Code Online (Sandbox Code Playgroud)

javascript css nav reactjs react-hooks

8
推荐指数
1
解决办法
2万
查看次数

标签 统计

css ×1

javascript ×1

nav ×1

react-hooks ×1

reactjs ×1