仅当

时间:2016-05-09 14:43:51

标签: javascript jquery html angularjs

我正在使用angularjs进行无限滚动页面,当用户到达页面底部时会加载更多项目。我的问题是在无限滚动容器下可能有也可能没有更多“东西”。因此,如果用户到达页面底部,如果存在“东西”,我不想加载更多项目。所以当无限滚动容器到达容器的末尾而不是页面的末尾时,我想加载更多的项目。

对于无限滚动,我有一个这样的angularjs指令:

myApp.directive("scroll", function ($window) {
    return function(scope, element, attrs) {
         angular.element($window).bind("scroll", function(event) {
             var docHeight = $(document).height();
             var reachBottom = $($window).scrollTop() == (docHeight - $($window).height());
             if (reachBottom) {
                  setTimeout(scope.loadMore(), 100);
             }
         });
    };
});

2 个答案:

答案 0 :(得分:0)

你可以在infiniti滚动容器下获得东西高度并使用它

 var docHeight = $(document).height();
 var stuffHeight = $('#stuff').height();
 var reachBottom = $($window).scrollTop() == (docHeight - ($($window).height() + stuffHeight));
 if (reachBottom) {
      setTimeout(scope.loadMore(), 100);
 }

答案 1 :(得分:0)

只有使用jQuery才能做到。请参阅下面的代码段。

<script>
    $(function () {
        var w = $(window);
        loadNewPage();

        // Each time the user scrolls
        w.scroll(function () {
            // End of the document reached?
            if ($(document).height() - win.height() == win.scrollTop()){
                loadNewPage();
            }
        });
    });
</script>