javascript - 使用 React Nextjs 的粘性导航栏

标签 javascript reactjs next.js navbar

我正在尝试使用 nextjs 设置粘性导航栏,但生成的导航栏无法正常工作。任何人都可以帮忙编写下面的代码吗?

import React, { useEffect } from 'react'
import styles from './navbar.module.css'

const Navbar = () => {
    const [scrolled, setScrolled] = React.useState(false);

    const handleScroll = () => {
        const offset = window.scrollY;

        if (offset > 200) {
            setScrolled(true);
        }
        else {
            setScrolled(false);
        }
    }
    useEffect(() => {
        window.addEventListener('scroll', handleScroll)
    })


    return (
        <div className={scrolled ? styles.scrolled : styles.navbar}>
            <ul className={styles.ul}>
                Something
            </ul>
            Navbar
        </div>
    )

};

export default Navbar;

最佳答案

如果您想要一个粘性导航栏,您可以使用纯 CSS 和 position: Sticky 来实现,如下所示:

header, nav, main {
  padding: 1.7rem 1rem;
}

header {
  background-color: #d99;
}

nav {
  position: sticky;
  top: 2rem;
  background-color: #9d9;
}

main {
  height: 100vh;
  background-color: #99d;
}
<header>
Header
</header>
<nav>
  Navbar
</nav>
<main>
  Main
</main>

关于javascript - 使用 React Nextjs 的粘性导航栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67592178/

相关文章:

javascript - 如何使用随 Node 安装的 Prism 插件

javascript - 解构或赋值运算符

node.js - 我正在尝试将 Sequelize 与 Next JS API 路由一起使用

javascript - 幻灯片上的图像向下跳跃

javascript - 可以将制表符值分配给 html 表单元素吗?

reactjs - 如何删除 map 之前的重复内容

javascript - 错误 : Uncaught TypeError: Cannot read properties of undefined (reading 'map' )

javascript - JS在新函数调用之前清除上一个函数调用的计时器

javascript - next.js 应用程序如何针对移动屏幕进行优化?

next.js - TypeError : Invalid PostCSS Plugin found at: plugins[0]