I'm making a project in angular. I would like to add a navbar which have transparent background initially but on scroll it will change its color. I am using bootstrap classes for that
My Navbar heading is html code:
<nav class="navbar navbar-expand-md sticky-top">
...
</nav>
where can I add my Script to change its color on Scroll
You can achieve this with @HostListner
in your Typescript
file.
import { HostListener } from @angular/core;
@HostListener('window:scroll', ['$event'])
onWindowScroll() {
let element = document.querySelector('.navbar') as HTMLElement;
if (window.pageYOffset > element.clientHeight) {
element.classList.add('navbar-inverse');
} else {
element.classList.remove('navbar-inverse');
}
}
Put scroll event on HTML part.
<nav class="navbar navbar-expand-md sticky-top" (scroll)="onWindowScroll();"></nav>