Как сделать навигацию ссылок в каждый отдельный фрагмент, то есть чтоб открывалась каждая вкладка по отдельности без скролла
На данный момент страница выглядит как Landing Page, то есть при нажатии на ссылку из header.js листает вниз к странице, хотелось бы сделать чтоб без скролла он открывал каждую ссылку по отдельности внутри
App JS
import "./App.scss";
import Header from "./components/Header";
import Home from "./components/Home";
import AboutUs from "./components/About";
import Services from "./components/Services";
import Resume from "./components/Resume";
import Portfolio from "./components/Portfolio";
import Testimonials from "./components/Testimonials";
import Contact from "./components/Contact";
import Footer from "./components/Footer";
import { useEffect, useState } from "react";
import ClassicHeader from "./components/ClassicHeader";
import { commonConfig } from "./config/commonConfig";
import TermsAndConditions from "./components/TermsAndConditions";
import Disclaimer from "./components/Disclaimer";
import PreLoader from "./components/Preloader";
import { Tooltip } from "./components/Tooltip";
function App() {
const classicHeader = commonConfig.classicHeader;
const darkTheme = commonConfig.darkTheme;
const handleNavClick = (section) => {
document.getElementById(section).scrollIntoView({ behavior: "smooth" });
};
const [scrollTopVisible, setScrollTopVisible] = useState(false);
const [isLoading, setisLoading] = useState(true);
useEffect(() => {
const loadingTimeout = setTimeout(() => {
setisLoading(false);
}, 1000);
return () => {
clearTimeout(loadingTimeout);
};
}, []);
const checkScrollTop = () => {
let scrollTopBtn = document.getElementById("back-to-top");
if (scrollTopBtn) {
if (
document.body.scrollTop > 400 ||
document.documentElement.scrollTop > 400
) {
setScrollTopVisible(true);
} else {
setScrollTopVisible(false);
}
}
};
if (typeof window !== "undefined") {
window.addEventListener("scroll", checkScrollTop);
}
return (
<>
<div
style={{ position: "relative" }}
className={classicHeader ? "" : "side-header"}
>
{isLoading && <PreLoader></PreLoader>}
<div id="main-wrapper">
{classicHeader ? (
<ClassicHeader handleNavClick={handleNavClick}></ClassicHeader>
) : (
<Header handleNavClick={handleNavClick}></Header>
)}
<div id="content" role="main">
<Home
classicHeader={classicHeader}
darkTheme={darkTheme}
handleNavClick={handleNavClick}
></Home>
<Portfolio
classicHeader={classicHeader}
darkTheme={darkTheme}
></Portfolio>
<AboutUs
classicHeader={classicHeader}
darkTheme={darkTheme}
></AboutUs>
<Resume
classicHeader={classicHeader}
darkTheme={darkTheme}
></Resume>
<Contact
classicHeader={classicHeader}
darkTheme={darkTheme}
></Contact>
</div>
</div>
{/* back to top */}
<Tooltip text="Back to Top" placement="left">
<span
id="back-to-top"
className="rounded-circle"
style={{ display: scrollTopVisible ? "inline" : "none" }}
onClick={() => {
window.scrollTo({ top: 0, behavior: "smooth" });
}}
>
<i className="fa fa-chevron-up"></i>
</span>
</Tooltip>
<TermsAndConditions darkTheme={darkTheme}></TermsAndConditions>
<Disclaimer darkTheme={darkTheme}></Disclaimer>
</div>
</>
);
}
export default App;
Header JS
import React, { useState } from "react";
import { Tooltip } from "./Tooltip";
import { Link } from "react-scroll";
const Header = ({ classicHeader, darkTheme, homeRef, handleNavClick }) => {
const [isNavModalClose, setIsNavModalClose] = useState(true);
return (
<header id="header" className="sticky-top">
{/* Navbar */}
<nav className="primary-menu navbar navbar-expand-lg navbar-dark bg-dark border-bottom-0">
<div className="container-fluid position-relative h-100 flex-lg-column ps-3 px-lg-3 pt-lg-3 pb-lg-2">
{/* Logo */}
<Link
smooth
duration={500}
style={{ cursor: "pointer" }}
to="home"
className="mb-lg-auto mt-lg-4"
onClick={(e) => {
e.preventDefault();
setIsNavModalClose(true);
}}
>
<img
className="imag"
src="images/profil.jpg"
title="I'm Simone"
alt="profile"
/>
</Link>
{/* Logo End */}
<div
id="header-nav"
className={
isNavModalClose
? "collapse navbar-collapse my-lg-auto "
: "show navbar-collapse my-lg-auto"
}
>
<ul className="navbar-nav my-lg-auto py-lg-3">
<li className="nav-item">
<Link
target={homeRef}
className="nav-link "
style={{ cursor: "pointer" }}
activeClass="active"
spy
to="portfolio"
onClick={(e) => {
e.preventDefault();
setIsNavModalClose(true);
}}
>
Case
</Link>
</li>
<li className="nav-item">
<Link
className="nav-link "
style={{ cursor: "pointer" }}
activeClass="active"
spy
to="about"
onClick={(e) => {
e.preventDefault();
setIsNavModalClose(true);
}}
>
Price
</Link>
</li>
<li className="nav-item">
<Link
className="nav-link "
style={{ cursor: "pointer" }}
activeClass="active"
spy
to="resume"
onClick={(e) => {
e.preventDefault();
setIsNavModalClose(true);
}}
>
Resume
</Link>
</li>
<li className="nav-item">
<Link
className="nav-link "
style={{ cursor: "pointer" }}
activeClass="active"
spy
to="contact"
onClick={(e) => {
e.preventDefault();
setIsNavModalClose(true);
}}
>
Contact
</Link>
</li>
</ul>
</div>
<button
onClick={(e) => {
setIsNavModalClose(!isNavModalClose);
}}
className={
isNavModalClose ? "navbar-toggler" : "navbar-toggler show"
}
id="navbar-toggler"
type="button"
>
<span />
<span />
<span />
</button>
</div>
</nav>
{/* Navbar End */}
</header>
);
};
export default Header;