reactjs 向下滚动时React下划线React引导NavItem

b0zn9rqh  于 2023-01-12  发布在  React
关注(0)|答案(1)|浏览(102)

我正在尝试创建一个网页,其中有一个带有几个导航项的React引导导航栏。我想滚动页面,以便在转到新部分时,该特定导航项带有下划线,或者在单击该导航项时,它会自动滚动到该项目。我尝试联机查找并找到了React滚动,但不知道如何将其链接到我的React引导代码。
这是我的导航栏组件

export const NavbarComponent = () => {
    return (
      <>
      <Navbar collapseOnSelect className="style-navbar">
        <Container>
          <Navbar.Brand className="style-navbrand" href="/">
              <div class="inl">LOGO</div>
              <div className="style-subheading"Subheading</div>
          </Navbar.Brand>
          <Nav className="style-nav">
          <Nav.Item className="style-navitem">
            <Nav.Link className="style-navlink" href="/home">ABOUT</Nav.Link>
           </Nav.Item>
           <Nav.Item className="style-navitem">
            <Nav.Link className="style-navlink" href="/members">MEMBERS</Nav.Link>
            </Nav.Item>
            <Nav.Item className="style-navitem">
            <Nav.Link className="style-navlink" href="/pricing">Pricing</Nav.Link>
            </Nav.Item>
          </Nav>
          <Nav>
              <Nav.Link id="style-navlink" href="/contact">CONTACT</Nav.Link>
          </Nav>
        </Container>
      </Navbar>
      </>

这是我的App. js

return (
    <div className="style-background">
      <div className = "style-backg-sheet">
        <NavbarComponent/>
        <AboutComponent/>
        <MemberComponent/>
        <PricingComponent/>
      </div>
    </div>
  );
}

关于组件

import React from 'react'
import {Container} from 'react-bootstrap';

const About = () => {
    return (
        <div>
            <Container>
                <h1>About</h1>
                <p>Some text</p>
            </Container>
        </div>
    )
}

export default About

我基本上想有不同的部分,如上所述,在一个页面上,如果我点击一个特定的导航栏项目,它强调该项目,并滚动我向下到它(如果我点击定价,它滚动我向下到定价部分,其中有一点文字和图片)。

gzszwxb4

gzszwxb41#

如果你想要的,至少,是为链接导航到一个特定的部分和下划线的活动菜单项,那么我建议如下:

  • 为要链接到的每个“section”分配一个id属性。
const About = () => {
  return (
    <div className="section" id="about"> // <-- add id for each section
      <Container>
        <h1>About</h1>
        <p>Some text</p>
      </Container>
    </div>
  );
};
  • 在导航项中使用散列链接
<Nav.Link className="style-navlink" href="#about">
  About
</Nav.Link>
  • 添加CSS以设置活动菜单项链接的样式
a.style-navlink.active {
  color: #000;
  font-weight: bold;
  text-decoration: underline;
}

这将滚动部分进入视图,只要所有内容都作为一个连续的文档内联呈现。当我试图使导航栏“粘性”或“固定”到顶部,使它不滚动的内容时,我看到,其余的内容需要放置在一个可滚动的容器中,默认的“滚动到”行为被破坏。你可以用第三方库修复这个问题。在下一节中,我选择react-router-hash-link来创建可以控制内容滚动方式的hashlink。
一个三个三个一个

相关问题