Javascript 当滚动到特定角度点时,如何触发函数?

Javascript 当滚动到特定角度点时,如何触发函数?,javascript,angularjs,infinite-scroll,Javascript,Angularjs,Infinite Scroll,我不是在寻找ngInfiniteScroll解决方案(我不想使用jQuery) 我的页面分为三个部分 <section id="A" ng-init="initA()"> <!-- Content A --> </section> <section id="B" ng-init="initB()"> <!-- Content B --> </section> <section id="C" ng-init="i

我不是在寻找
ngInfiniteScroll
解决方案(我不想使用jQuery)

我的页面分为三个部分

<section id="A" ng-init="initA()">
 <!-- Content A -->
</section>

<section id="B" ng-init="initB()">
 <!-- Content B -->
</section>

<section id="C" ng-init="initC()">
 <!-- Content C -->
</section>


当用户向下滚动到相关部分时,如何触发函数
initA()、init(B)、init(C)
?也就是说,在页面加载时,不会加载任何内容。但是一旦用户开始向下滚动,就会触发
initX()

您可以为此编写一个指令。 看这把小提琴:


如果不工作,它会立即启动它,尽管我滚动到了分区A,它会立即启动,因为它已经在顶部了。当你向下滚动到B/C时,它会相应地为B/C触发。但我不确定你是如何捕获事件的?比如如何在滚动时触发函数?我们将滚动事件绑定到窗口元素。当用户滚动时,每次触发绑定事件;我们检查窗口对象的滚动位置(this.pageYOffset)和我们的部分的初始顶部位置。如果要在每次按滚动点击该节时触发某些代码,则应删除$scope.hitcroll和相关代码。@KursadGulseven您能给出角度版本>=2的答案吗
var myApp = angular.module('myApp',[]);

myApp.directive('dSec', function($window) {
  return {
    link: function(scope, elm, attr, ctrl) {
        scope.initialScroll[attr.id] = elm.prop('offsetTop');
        angular.element($window).bind("scroll", function() {
             if (this.pageYOffset >= scope.initialScroll[attr.id]
                    && !scope.hitScroll[attr.id]) {
                 console.log("Scroll to --> ", attr.id);
                 scope.hitScroll[attr.id] = true;
             }
        });
    }
  };
});
//myApp.factory('myService', function() {});

function MyCtrl($scope) {
    $scope.initialScroll = {};
    $scope.hitScroll = {};
}