更换当前
JavaScript
使用以下代码。通过消除代码重复并简化条件,我对其进行了一些清理。你必须记住的一件事是你必须调整你的
OFFSET
抵消
并将其调整为最佳观看体验。
var nav = document.querySelector('.nav');
function changeColor(aboutbutton, archivebutton, projectbutton, contactbutton) {
document.getElementById("aboutbutton").style.backgroundColor = aboutbutton;
document.getElementById("archivebutton").style.backgroundColor = archivebutton;
document.getElementById("projectbutton").style.backgroundColor = projectbutton;
document.getElementById("contactbutton").style.backgroundColor = contactbutton;
}
changeColor('gray', '#333', '#333', '#333');
var OFFSET = 90;
window.addEventListener('scroll', () => {
if (this.pageYOffset > document.getElementById('fourthRow').offsetTop - OFFSET) {
changeColor('#333', '#333', '#333', 'gray');
} else if (this.pageYOffset > document.getElementById('thirdRow').offsetTop - OFFSET) {
changeColor('#333', '#333', 'gray', '#333');
} else if (this.pageYOffset > document.getElementById('secondRow').offsetTop - OFFSET) {
changeColor('#333', 'gray', '#333', '#333');
} else {
changeColor('gray', '#333', '#333', '#333');
}
})
function fixIfScrolled() {
if (window.scrollY >= nav.offsetTop) {
nav.classList.add("stationary");
} else {
nav.classList.remove("stationary");
}
if (window.scrollY == nav.offsetTop) {
nav.classList.add("largerNavbar");
} else {
nav.classList.remove("largerNavbar");
}
}
window.onscroll = function() {
fixIfScrolled()
};