html - 如何检测用户何时停止滚动 - Angular 5

标签 html angular typescript

我试图在用户滚动页面时隐藏一个 div,而当停止滚动时我想显示该 div。

我正在使用@HostListener,但它只触发用户滚动页面。

  @HostListener('window:scroll', ['$event']) 
  onScroll(event) {
    this.scroll = true;
    setTimeout(() => {
      this.scroll = false;
    }, 2000);
  }

最佳答案

要改进您当前的代码,请在检测到 scroll 事件时调用 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);
}

参见 this stackblitz用于演示。

关于html - 如何检测用户何时停止滚动 - Angular 5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54136114/

相关文章:

html - 如何使链接在访问后不改变颜色?

javascript - 用于简单悬停的 Angular2 动画,没有任何状态变化

reactjs - 通过下一个 js api 路由将文件上传到服务器

javascript - 如何选择多个ID并检查其是否具有相同的文本?

jquery - 你如何使用 jQuery 更改视频 src?

javascript - Jquery 淡入/淡出

php - Angular 推送消息未显示

angular - 可观察到的 ExpressionChangedAfterItHasBeenCheckedError

json - 按特定值过滤 JSON ionic 2

javascript - Web Worker onMessage 在 IE11 中为 null