我想在用户滚动角度方式时更改CSS元素。
这是使用JQuery方式的代码
$(window).scroll(function() { if ($(window).scrollTop() > 20 && $(window).scrollTop() < 600) { $('header, h1, a, div, span, ul, li, nav').css('height','-=10px'); } else if ($(window).scrollTop() < 80) { $('header, h1, a, div, span, ul, li, nav').css('height','100px'); }
我尝试使用以下代码执行Angular方式,但是$ scope.scroll似乎无法正确获取滚动数据。
forestboneApp.controller('MainCtrl', function($scope, $document) { $scope.scroll = $($document).scroll(); $scope.$watch('scroll', function (newValue) { console.log(newValue); }); });
Muchos gracias好友!
请记住,在Angular中,DOM访问应从指令内部进行。这是一个简单的指令,可根据scrollTop窗口的设置变量。
scrollTop
app.directive('scrollPosition', function($window) { return { scope: { scroll: '=scrollPosition' }, link: function(scope, element, attrs) { var windowEl = angular.element($window); var handler = function() { scope.scroll = windowEl.scrollTop(); } windowEl.on('scroll', scope.$apply.bind(scope, handler)); handler(); } }; });
1px