Reputation: 636
I need to check scroll event for a "show more" features.
Im using:
window.addEventListener('scroll', this.scroll, true);
and this code:
scroll = (event: any): void => {
const number = event.srcElement.scrollTop;
this.show_scroll_top = false;
if (event.target.scrollTop >= 500) {
this.show_scroll_top = true;
}
if (event.target.offsetHeight + event.target.scrollTop >= event.target.scrollHeight) {
this.showMorFunctionFoo();
}
};
Unfortunally the scroll listen to every scroll in page, for example a scroll inside a DropDown etc...
How can I listen ONLY the PAGE scroll ignoring everyelse?
Upvotes: 1
Views: 838
Reputation: 1276
One solution might be to use hostListener from Angular (https://angular.io/api/core/HostListener) in your page component
@HostListener('scroll', ['$event'])
onScroll($event:Event):void {
... your logic here
};
or you could use something like that
scroll = (event: any): void => {
if (event.target.getAttribute('id') === YOU_PAGE_HTML_ID) {
... your logic here
}
};
Upvotes: 3