scroll 事件,一个是window的,另一个不是。- -
完成效果:
// handle host scroll
@HostListener('scroll', ['$event']) public scrolled($event: Event) {
this.elementScrollEvent($event);
}
// handle window scroll
@HostListener('window:scroll', ['$event']) public windowScrolled($event: Event) {
this.windowScrollEvent($event);
}
这俩指令,基本上就解决了。
我是用来做table锁定表头的
table 外套的div加
detect-scroll (
onScroll)=
"handleScroll($event)"
事件:
public handleScroll(event: ScrollEvent) {
this.columnTop = this.el.nativeElement.querySelector('#tbl').scrollTop + 'px';
if (event.isReachingBottom) {
console.log(`the user is reaching the bottom`);
}
if (event.isReachingTop) {
console.log(`the user is reaching the top`);
}
if (event.isWindowEvent) {
console.log(`This event is fired on Window not on an element.`);
}
}
建议去看源码: