Я хочу изменить внешний вид моей панели навигации, когда свиток находится не сверху.
Я использую Angular Material CdkScrollable
и успешно извлекаю событие прокрутки, которое дает мне данныео том, как далеко он до вершины.
У меня проблема в том, что классы CSS никогда не меняются при прокрутке.С помощью console.log
я проверяю, что переменная isScrolled
корректно обновляется всякий раз, когда я прокручиваю вниз и снова вверх.Так что, кажется, работает хорошо.Я использую ngClass
с троичным для проверки того, какой класс CSS должен применяться.
Что-то очевидно, что мне не хватает?
html
<nav [ngClass]="isScrolled ? 'navbar-desktop-scrolled' : 'navbar-desktop'">
...
</nav>
тс
export class MainNavComponent implements AfterViewInit {
@ViewChild(MatSidenavContainer, { static: false }) sidenavContainer: MatSidenavContainer;
isScrolled: boolean = false;
ngAfterViewInit() {
this.sidenavContainer.scrollable.elementScrolled().subscribe((x) => {
if ((<Element>x.target).scrollTop > 0) {
this.isScrolled = true;
} else {
this.isScrolled = false;
}
console.log(this.isScrolled);
})
}
}