我想在AngularJS中创建一个更简单的jQuery Waypoints.js版本(页面上的粘性元素)。我创建了一个特殊的指令来观看滚动,它看起来像这样:
app.directive('watchScroll',function($window){
return {
restrict: 'E',
link: function(scope,elem,attrs){
var win = $window;
angular.element(win).bind('scroll',function(){
scope.watchScroll = win.pageYOffset;
scope.$apply();
})
}
}
})
然后在我想要的任何DIV' waypoint',我添加以下指令:
app.directive('animateThis',function(){
return {
restrict: 'E',
link: function(scope,elem,attrs){
scope.$watch('watchScroll',function(s){
if(s >= 100){ // do stuff here } else { // do the opposite stuff here }
});
}
}
})
这很好用,但我只是想知道这是否是一个好方法,如果没有,你会改变什么?