【发布时间】:2020-10-24 21:29:34
【问题描述】:
我想在用户将页面滚动 500 像素后显示一个“返回顶部”按钮。在 AppComponent 中,我试图在主 Div 中捕获滚动事件。
<div class="container" scrollable>
<router-outlet [routes]="Routes.all" ></router-outlet>
</div>
Div 和 Directive 中的(滚动)事件似乎都不起作用。
@Directive(selector: '[scrollable]')
class ScrollableDiv {
final Element e;
ScrollableDiv(this.e);
void scrollUpdate(){
window.onScroll.listen((event) { print('Scrolling');});
}
@HostListener('scroll')
void scrolling(){
scrollUpdate();
}
}
但是,如果我将“单击”添加到 @HostListener 而不是“滚动”,那么在单击页面后,我可以捕获滚动事件。如何在不点击的情况下开始收听滚动以及如何从“事件”获取 Y 偏移值?
【问题讨论】:
-
我不清楚你想做什么。您想触发滚动条位置的变化还是想在用户滚动鼠标滚轮时触发?后者需要 "wheel" 事件。