I have a class called nav-up
which I apply with javascript to my navbar when I scroll to make it disappear. I also have a class called nav-dark
to make it have a background color.
I want there to be a smooth transition on both these changes however it seems I can only do one at a time as if I do both it cancels the other out.
.navbar {
transition: top 0.2s ease-in-out;
transition: background-color 0.2s ease-in-out;
}
.nav-up {
top: -80px;
}
.nav-dark {
background-color: rgba(43, 43, 43, 1);
-webkit-box-shadow: 0 5px 14px rgba(0, 0, 0, 0.7);
box-shadow: 0 5px 14px rgba(0, 0, 0, 0.7);
}
.nav-transparent {
opacity: 0;
}
Here's the javascript. It works for applying classes but I intended for it to be transparent again if I scroll back up.
window.onscroll = function() {scrollFunction()};
document.querySelector(".navbar").classList.add('navbar-transparent')
document.querySelector(".navbar").classList.remove('navbar-dark');
function scrollFunction() {
if (document.body.scrollTop < 330 || document.documentElement.scrollTop < 330) {
document.querySelector(".navbar").classList.add('nav-dark');
} else if (document.body.scrollTop > 330 || document.documentElement.scrollTop > 330){
document.querySelector(".navbar").classList.add('navbar-transparent')
document.querySelector(".navbar").classList.remove('navbar-dark');
}
}