this time i want to ask how to change the black hover background on navbar moves automatically when scrolling down , i use react and here is the jsx and css code:
nav.jsx
import React from 'react'
import './nav.css'
import {AiOutlineHome} from 'react-icons/ai'
import {AiOutlineUser} from 'react-icons/ai'
import {BiBook} from 'react-icons/bi'
import {RiServiceLine} from 'react-icons/ri'
import {BiMessageSquareDetail} from 'react-icons/bi'
import { useState } from 'react'
const Nav = () => {
const[activeNav,setActiveNav]=useState('#')
return (
<nav>
<a href="#" onClick={()=>setActiveNav('#')} className={activeNav === '#' ? 'active' : ''}><AiOutlineHome /></a>
<a href="#about" onClick={()=>setActiveNav('#about')} className={activeNav === '#about' ? 'active' : ''} ><AiOutlineUser /></a>
<a href="#experience" onClick={()=>setActiveNav('#experience')} className={activeNav === '#experience' ? 'active' : ''}><BiBook /></a>
<a href="#portfolio" onClick={()=>setActiveNav('#portfolio')} className={activeNav === '#portfolio' ? 'active' : ''}><RiServiceLine /></a>
<a href="#contact" onClick={()=>setActiveNav('#contact')} className={activeNav === '#contact' ? 'active' : ''}><BiMessageSquareDetail /></a>
</nav>
)
}
export default Nav
nav.css
nav{
background: rgba(0,0,0,0.3);
width: max-content;
display: block;
padding: 0.7rem 1.7rem;
z-index: 2;
position: fixed;
left: 50%;
transform: translateX(-50%);
bottom: 2rem;
display: flex;
gap: 0.8rem;
border-radius: 3rem;
backdrop-filter: blur(15px);
}
nav a{
background: transparent;
padding: 0.9rem;
border-radius: 50%;
display: flex;
color: var(--color-light);
font-size: 1.1rem;
}
nav a:hover{
background: rgba(0,0,0,0.3);
}
nav a.active{
background: var(--color-bg);
color:var(--color-white);
}
here is the video demonstration of the navbar and i'am confuse how to make the hover background icon move by the section automatically when scrolling down. Thank you
you can achieve that using a package called react-scroll
, it acts as a regular link, and you can set an active class as well, and using the spy={true}
option, which makes the Link selected when the scroll is at its targets position aka anchor tag.
for more information check: react-scroll on npm.