Nat*_*ael 30 html css scrollbar typescript angular
我需要从溢出的div中获取滚动事件:在我的Angular 2应用程序中滚动.
似乎onscroll事件不适用于Angular 2.
我怎么能实现这一目标?
Gün*_*uer 85
// @HostListener('scroll', ['$event']) // for scroll events of the current element
@HostListener('window:scroll', ['$event']) // for window scroll events
onScroll(event) {
...
}
Run Code Online (Sandbox Code Playgroud)
要么
<div (scroll)="onScroll($event)"></div>
Run Code Online (Sandbox Code Playgroud)
Tho*_*ber 31
对于角4,工作溶液是在组件内部进行的
@HostListener('window:scroll', ['$event']) onScrollEvent($event){
console.log($event);
console.log("scrolling");
}
Run Code Online (Sandbox Code Playgroud)
Uli*_*lko 22
你可以使用@HostListener装饰器.适用于Angular 4及更高版本.
import { HostListener } from '@angular/core';
@HostListener("window:scroll", []) onWindowScroll() {
// do some stuff here when the window is scrolled
const verticalOffset = window.pageYOffset
|| document.documentElement.scrollTop
|| document.body.scrollTop || 0;
}
Run Code Online (Sandbox Code Playgroud)
met*_*bic 13
@HostListener我建议使用RxJS 中的fromEvent来替代和滚动元素上的输出,因为您可以将其与filter()和链接起来distinctUntilChanges(),并且可以轻松跳过大量潜在冗余事件(和更改检测)。
这是一个简单的例子:
// {static: true} can be omitted if you don't need this element/listener in ngOnInit
@ViewChild('elementId', {static: true}) el: ElementRef;
// ...
fromEvent(this.el.nativeElement, 'scroll')
.pipe(
// Is elementId scrolled for more than 50 from top?
map((e: Event) => (e.srcElement as Element).scrollTop > 50),
// Dispatch change only if result from map above is different from previous result
distinctUntilChanged());
Run Code Online (Sandbox Code Playgroud)
kod*_*bot 10
监听window:scroll窗口/文档级别滚动的scroll事件和元素级别滚动的元素事件.
@HostListener('window:scroll', ['$event'])
onWindowScroll($event) {
}
Run Code Online (Sandbox Code Playgroud)
要么
<div (window:scroll)="onWindowScroll($event)">
Run Code Online (Sandbox Code Playgroud)
@HostListener('scroll', ['$event'])
onElementScroll($event) {
}
Run Code Online (Sandbox Code Playgroud)
要么
<div (scroll)="onElementScroll($event)">
Run Code Online (Sandbox Code Playgroud)
@HostListener('scroll', ['$event']) 如果主机元素本身不可滚动,则无效.
| 归档时间: |
|
| 查看次数: |
78394 次 |
| 最近记录: |