Im moving my project to react, and im having problems with my scroll function.
I think my problem will be in my .js and it doesnt recognize #section:
var offsetSection = $('#' + 'section_' + value).offset().top - 83;
In my .html
<body>
<div id="root"></div>
</body>
<script >
var sectionArray = [1, 2, 3];
$.each(sectionArray, function(index, value){
$(document).scroll(function(){
var offsetSection = $('#' + 'section_' + value).offset().top - 83;
var docScroll = $(document).scrollTop();
var docScroll1 = docScroll + 1;
if ( docScroll1 >= offsetSection ){
$('.navbar-nav .nav-item .nav-link').removeClass('active');
$('.navbar-nav .nav-item .nav-link:link').addClass('inactive');
$('.navbar-nav .nav-item .nav-link').eq(index).addClass('active');
$('.navbar-nav .nav-item .nav-link').eq(index).removeClass('inactive');
}
});
$('.click-scroll').eq(index).click(function(e){
var offsetClick = $('#' + 'section_' + value).offset().top - 83;
e.preventDefault();
$('html, body').animate({
'scrollTop':offsetClick
}, 300)
});
});
$(document).ready(function(){
$('.navbar-nav .nav-item .nav-link:link').addClass('inactive');
$('.navbar-nav .nav-item .nav-link').eq(0).addClass('active');
$('.navbar-nav .nav-item .nav-link:link').eq(0).removeClass('inactive');
});
</script>
In my .tsx
<nav className="navbar navbar-expand-lg">
<div className="container">
<div className="collapse navbar-collapse" id="navbarNav">
<ul className="navbar-nav align-items-lg-center ms-auto me-lg-5">
<li className="nav-item">
<a className="nav-link click-scroll" href="#section_1">Home</a>
</li>
<li className="nav-item">
<a className="nav-link click-scroll" href="#section_2">About</a>
</li>
<li className="nav-item">
<a className="nav-link click-scroll" href="#section_3">Ecosystem</a>
</li>
</ul>
</div>
</div>
</nav>
Example to call the section:
<a className="nav-link click-scroll" href="#section_2">About</a>
<section className="about-section section-padding" id="section_2">
</section>
I appreciate any help!