angular - 主机监听器滚动事件未触发

标签 angular syncfusion

我的主要目标是当用户向下滚动时,我需要获取当前的 scrollTop 偏移量。并且用户可以通过在滚动条上单击鼠标或使用鼠标滚轮进行滚动,因此当用户这样做时,我想更新 take()skip() (或 page())参数 ejQuery() 触发 http get 并为该 View 提供数据。

使用 SyncFusion 1

下面的代码是我尝试将指令分配给 ejTreeGrid watch scroll事件来自 HostListener() ,但正如用户 PierreDuc 所说, ejTreeGrid 实现它的自定义 scroller ,因此默认不会触发。 PierreDuc 建议使用 getScrollTopOffset方法,但每次用户执行滚动操作时我仍然需要触发它...

指令被附加到 SyncFusion 的 ejTreeGrid 要观看的组件 scroll事件,但它不会触发。一切都很好 click事件 - 在该子组件上触发。可能有什么问题?

尝试过:

@HostListener('scrollY', ['$event'])
onScroll(e) {
    console.log(e)
}
@HostListener('onscroll', ['$event'])
onScroll2(e) {
    console.log(e)
}
@HostListener('scroll', ['$event'])
onScroll3(e) {
    console.log(e)
}

@HostListener('scrollX', ['$event'])
onScroll4(e) {
    console.log(e)
}

这有效:
@HostListener('click', ['$event'])
onClick(e) {
    console.log('clicked')
    console.log(e)

}

更新:

还补充道:
@HostListener('mousewheel', ['$event'])
onScroll5(e) {
    console.log('mousewheel')
}

@HostListener('DOMMouseScroll', ['$event'])
onScroll6(e) {
    console.log('DOMMouseScroll')
}

@HostListener('onmousewheel', ['$event'])
onScroll7(e) {
    console.log('onmousewheel')
}

出于某种原因,只有 mousewheel被触发并且仅当我滚动鼠标滚轮时(显然)但仅当滚动条位于顶部或底部时。否则它不会火。

最佳答案

下面是工作代码:

@HostListener('document:mousewheel', ['$event'])
onDocumentMousewheelEvent(event) {
    console.log('on Mouse wheel Event');
}

Please Check Demo Here

关于angular - 主机监听器滚动事件未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50229390/

相关文章:

Angular sourceMap 损坏

Angular Material Progress Spinner 没有动画

angular - 如何在 angular2/浏览器上使用 mongoose

Reactjs如何获取开始日期和结束日期的值?

javascript - Syncfusion ejGrid 不显示来自 Web Api 源的数据

c# - 在 Syncfusion 的 excel 中通过 SSRS 从向下钻取数据流中打开现有文件

javascript - 无法为身份验证系统以 Angular 8 导入 firestore 和 firebase

java - 如何告诉 gradle 在构建时在项目中安装 npm?

javascript - 无法在 LightSwitch HTML 中使用 Syncfusion JavaScript 组件

c# - 如何防止 Syncfusion ASP.Net Webforms Grid 中的过滤器文本框发送服务器端请求?