角度滚动条百分比

时间:2014-06-10 14:20:37

标签: jquery angularjs scroll scrollbar percentage

我需要在angular.js中找到滚动条的优势。然后,当它达到约60%时调用一个函数。现在我正在使用从指令调用的范围函数,唯一的问题是我无法找到滚动条滚动下来的百分之几。这是我到目前为止,看起来不太好......

app.directive('whenScrolled', function($window) {

return function(scope, element, attr) {
    var scrolledEl = angular.element($window);

    angular.element($window).bind('scroll', function() {

    var offSet = scrolledEl.offset(),
        height = scrolledEl.height(),
        scrolledPercentage = (offSet / height)*11;

        if (scrolledPercentage >= 60) {
          scope.$apply(attr.whenScrolled);
        }
    });
};

});

正如你所看到的,我通过实验发现,当我将其乘以11时,我得到百分比,但它仅在几个屏幕高度起作用。我需要一个通用的解决方案,之后,当我向dom添加更多元素并且身体延伸以给出正确的%。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您应该使用$window.pageYOffset$window.innerHeight 他们的分区会给你一个从0到1的值,所以如果你喜欢比较一个百分比的数字,只需乘以100。

这应该像你想要的那样工作,或多或少(只需将console.log替换为你需要采取的任何行动,如果百分比> 60):

  angular.element($window).bind('scroll', function() {

    var offSet = $window.pageYOffset,
        height = $window.innerHeight,
        scrolledPercentage = (offSet / height * 100);
        //console.log(scrolledPercentage);
        if (scrolledPercentage >= 60) {
          console.log(scrolledPercentage + ' over 60');
        }
    });