首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从内部div检测滚动事件

从内部div检测滚动事件
EN

Stack Overflow用户
提问于 2016-06-22 22:27:51
回答 5查看 25.4K关注 0票数 15

我希望能够在从可滚动的内部div滚动时检测事件,而不仅仅是窗口目标。

例如,我有一个监听滚动事件的指令,这里我需要将‘host:'(window: scroll )’更改为其他值。

代码语言:javascript
复制
import {Directive, Output, EventEmitter} from '@angular/core';

@Directive({
  selector: '[infinite-scroll]',
  host: {'(window:scroll)': 'track($event)'},
})

export class InfiniteScrollerDirective {
  @Output() scrolled = new EventEmitter();

  track(event: Event) {
    this.scrolled.emit({
        value: event
    });
  }
}

我在我的组件中使用它作为带有“滚动”输出的无限滚动指令。

代码语言:javascript
复制
<div infinite-scroll (scrolled)="onScroll($event.value)">
  <table class="table">
    <thead>
    </thead>
    <tbody>
    </tbody>
  </table>
</div>...

事件发生在这里。

代码语言:javascript
复制
 onScroll(event: UIEvent) {

 }
EN

回答 5

Stack Overflow用户

发布于 2017-08-09 06:59:52

我不明白为什么这里的每个人都想搞乱@HostListener。在处理页面级事件时,它绝对是必需的,但不是子元素。您可以使用Angular 2事件侦听器,而不是使用JQuery样式的事件绑定。如果你使用的是一个内部div,你所需要做的就是在你的div上添加scroll事件监听器,使用一个类似下面的回调方法:

HTML:

代码语言:javascript
复制
<div (scroll)="onScroll($event)">

</div>

TypeScript:

代码语言:javascript
复制
onScroll(event): void {

    // Interpret the scroll event
    // Do stuff on inner div scroll
}
票数 12
EN

Stack Overflow用户

发布于 2016-11-03 20:56:48

Angular 2.0 RC

代码语言:javascript
复制
export class YourComponent {
      @HostListener('scroll', ['$event']) private onScroll($event:Event):void {
        console.log($event.srcElement.scrollLeft, $event.srcElement.scrollTop);
      };
}
票数 4
EN

Stack Overflow用户

发布于 2016-11-16 20:44:00

手动添加EventListner的最简单方法

代码语言:javascript
复制
    document.addEventListener('scroll', (e)=>{
        let el = this.elementRef.nativeElement;
        if(el.contains(e.target)){
        // do something
        }
    }, true);

结尾处的"true“告诉浏览器在分派时捕获事件,即使该事件通常不会冒泡,如change、focus和scroll。

不可能向@HostListener或renderer.listen传递useCapture参数。

销毁组件时,不要忘记删除此侦听器。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37971019

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档