【问题标题】:Sticky navigation bar -React粘性导航栏-React
【发布时间】:2019-12-27 21:34:31
【问题描述】:

我目前正在制作作品集。我想在顶部有一个导航栏。单击导航栏上的选项卡后,它将向下滚动到该特定页面,并且导航栏将停留在顶部。我目前正在使用反应滚动。但是,我需要有关如何在向下滚动时使导航栏保持在顶部的建议。 现在,我的代码看起来像这样:

import { Link} from "react-scroll";
class Navbar extends Component {
  render() {
    return (
      <section id="nav-bar">
        <nav className="navbar navbar-default navbar-fixed-top">
          <div className="navbar">
            <ul
            >
              <li>
                <Link
                  activeClass="active"
                  to="home"
                  spy={true}
                  smooth={true}
                  offset={-70}
                  duration={500}
                >
                  Home
                </Link>
              </li>
              <li>
                <Link
                  activeClass="active"
                  to="demo"
                  spy={true}
                  smooth={true}
                  offset={0}
                  duration={500}
                >
                  Demo
                </Link>
              </li>
              <li>
                <Link
                  activeClass="active"
                  to="process"
                  spy={true}
                  smooth={true}
                  offset={-70}
                  duration={500}
                >
                  Process
                </Link>
              </li>
            </ul>
          </div>
        </nav>
      </section>
    );
  }
}

在我的 App.js 中,我只返回 div 中的所有页面

      <div>
        <Navbar />
        <HomePage />
        <DemoPage />
        <ProcessPage />
      </div>

将不胜感激任何类型的帮助或建议。我应该使用除了 react-scoll 以外的任何东西吗?谢谢!

【问题讨论】:

标签: javascript reactjs navigation


【解决方案1】:

react-scroll 有一个 Element 类,你应该用 Element 包装你的组件

<Element name="home">
          <HomePage />
        </Element>

这是包含固定版本的临时sandbox

【讨论】:

  • 嗨,我的问题可能不是很清楚。我的代码完全按照您在沙盒示例中显示的方式工作。但是我希望导航栏在向下滚动到 ProcessPage 时停留在顶部。
  • 我已将 .sticky { position: fixed; top: 0; width: 100%; background-color: rgba(224, 197, 252, 0.637); } 添加到 css 并更改了 Linkoffset 属性。您应该使用适当的值更改 offset 。请检查一下。
  • 这并不能真正解决问题。页面内容在滚动时隐藏导航栏。查看:picture 我正在尝试制作类似this 的东西。但我不知道该怎么做!
  • 正如我所提到的,您应该使用适当的值更改偏移量。如果可能的话,将您的代码放入沙箱中
  • 是的,我将偏移量添加为 -70。我对沙盒不太熟悉。我的代码在Github repo。已经调试了几个小时没有任何运气
猜你喜欢
  • 2022-01-18
  • 1970-01-01
  • 2018-11-02
  • 1970-01-01
  • 2014-04-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多