Ну, я нашел решение моей проблемы, используя угловое кодирование и фиксированное положение.Если кто-то знает, как это сделать с помощью позиции css sticky, то это будет оценено.
navbar.component.html
<div class="outer" [class.sticky]="sticky" #stickyNavbar>
navbar.component.css
.sticky {
position: fixed;
top: 0;
}
navbar.component.ts
import { Component, OnInit, AfterViewInit, ViewChild, ElementRef, HostListener } from '@angular/core';
export class NavBarComponent implements OnInit {
@ViewChild('stickyNavbar') navbarElement: ElementRef;
sticky: boolean = false;
navbarPosition: any;
ngAfterViewInit() {
this.navbarPosition = this.navbarElement.nativeElement.offsetTop;
}
@HostListener('window:scroll', ['$event'])
handleScroll() {
const windowScroll = window.pageYOffset;
if(windowScroll > this.navbarPosition) {
this.sticky = true;
} else {
this.sticky = false;
}
}
}