[英]How to change link Navbar color while scrolling in React or Gatsby?
滾動時,我想根據 Id 更改顏色鏈接。 我怎樣才能做到這一點?
例子:
<div>
<nav>
<div className="bg-mainColor h-16 flex justify-between">
<div className="text-white">Navbar</div>
<div>
<Link to="/" className="text-white">
Home
</Link>
<Link to="#first" className="text-white">
Features
</Link>
<a href="#" className="text-white">
Courses
</a>
</div>
</div>
</nav>
<div className="min-h-screen" id="feature">
Features
</div>
<div className="min-h-screen" id="course">
Courses
</div>
</div>
您必須在您的鏈接中添加一個 Id 並在您的 componentDidMount 上添加一個事件偵聽器:
componentDidMount() {
document.addEventListener('scroll' , this.handleScroll)
}
你的handleScroll
就像:
handleScroll = (event) => {
//handle your event base on scroll in pixels or what ever for example :
if(window.scrollY > 100) {
let aEl = document.getElementById('YOUR_LINK_ID');
aEl.setAttribute("style" , "color : red")
}
}
並且不要忘記在ComponentWillUnMount
上removeEventListener
:
componentWillUnMount() {
document.removeEventListener('scroll',this.handleScroll);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.