angularjs – 改变CSS滚动角样式

我想在用户滚动角度方式时更改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,'100px');
    }

我尝试用Angular的方式与以下代码,但$ scope.scroll似乎无法正确地接收滚动数据。

forestboneApp.controller('MainCtrl',function($scope,$document) {
    $scope.scroll = $($document).scroll();
    $scope.$watch('scroll',function (newValue) {
        console.log(newValue);
    });
});

Muchos gracias amigos!

记住,在Angular中,DOM访问应该在指令内发生。这里有一个简单的指令,根据窗口的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如果窗口向下滚动超过50像素:http://jsfiddle.net/BinaryMuse/Z4VqP/

相关文章

ANGULAR.JS:NG-SELECTANDNG-OPTIONSPS:其实看英文文档比看中...
AngularJS中使用Chart.js制折线图与饼图实例  Chart.js 是...
IE浏览器兼容性后续前言 继续尝试解决IE浏览器兼容性问题,...
Angular实现下拉菜单多选写这篇文章时,引用文章地址如下:h...
在AngularJS应用中集成科大讯飞语音输入功能前言 根据项目...
Angular数据更新不及时问题探讨前言 在修复控制角标正确变...