Html 当用户';s停止滚动-角度5
当用户滚动页面时,我试图隐藏一个div,当停止滚动时,我想显示该div 我正在使用@HostListener,但它只触发了用户滚动页面Html 当用户';s停止滚动-角度5,html,angular,typescript,Html,Angular,Typescript,当用户滚动页面时,我试图隐藏一个div,当停止滚动时,我想显示该div 我正在使用@HostListener,但它只触发了用户滚动页面 @HostListener('window:scroll', ['$event']) onScroll(event) { this.scroll = true; setTimeout(() => { this.scroll = false; }, 2000); } 你的方法有效。这次闪电战证明了这一点:
@HostListener('window:scroll', ['$event'])
onScroll(event) {
this.scroll = true;
setTimeout(() => {
this.scroll = false;
}, 2000);
}
你的方法有效。这次闪电战证明了这一点:
您可能在其他地方出错。若要改进当前代码,请在检测到
滚动
事件时调用clearTimeout
。它将阻止div显示,直到您停止滚动指定的时间
public scroll = false;
private timeout: number;
@HostListener('window:scroll', ['$event'])
onScroll(event) {
this.scroll = true;
clearTimeout(this.timeout);
this.timeout = setTimeout(() => {
this.scroll = false;
}, 300);
}
请参阅以获取演示。您可以将RxJs用于此用例
fromEvent(窗口,“滚动”).pipe(
轻触(()=>this.scroll=true),
去BounceTime(100)
).订阅(()=>{
this.scroll=false;
});
Stackblitz示例:您使用的是有时会阻止滚动事件的角度材质吗?不,这是projectExplain中有关滚动事件的第一件事。您的成功条件是“用户滚动时隐藏div,停止后显示”。这一条件已经满足。但是,如果您希望接近即时状态更改,请将超时设置为0毫秒而不是2000毫秒。是否尝试通过编程方式滚动?div有一个动画,可以将div从屏幕上滑下,乍一看效果很好,但是当我滚动到long或慢速滚动时,div会弹出。