angularjs 检测每个父元素上的滚动事件

jhdbpxl9  于 2022-12-03  发布在  Angular
关注(0)|答案(3)|浏览(204)

我有一个指令,它应该检测每个父元素上的scroll-event。可滚动的元素可以是带有overflow:scroll的div,也可以是浏览器窗口本身。所以这个解决方案并不适用于所有情况:

angular.element($window).bind("scroll", function() { ... });
jchrr9hc

jchrr9hc1#

您需要在捕获阶段侦听scroll事件。为此,请将true作为addEventListener的第三个参数传递:

document.getElementById('parent').addEventListener('scroll', () => {
    console.log('scrolling');
}, true);

当我用上面的代码替换javascript时,您的示例可以正常工作,并且没有jQuery依赖性。

mrzz3bfm

mrzz3bfm2#

您需要为div元素添加一些特定的高度以进行滚动
例如:

div{
  height: 350px;    // Specify div height as you want
  overflow: scroll;
}
2hh7jdfx

2hh7jdfx3#

好吧,我找到解决办法了。就是:

angular.element(document.querySelectorAll('*')).bind("scroll", $scope.myFunction);

相关问题