詢問「是否有更多的滾動或讓我們到達Angular中可滾動區域的底部?」的最佳方式是什麼?AngularJS - >查詢「處於頁面底部」
擁有一個帶有固定底部導航欄的單頁應用程序,並且希望顯示一個UI提示,指示有更多內容要顯示,條件是不在頁面結尾。思考有一個書籤方式(哈希標籤)來做到這一點。
詢問「是否有更多的滾動或讓我們到達Angular中可滾動區域的底部?」的最佳方式是什麼?AngularJS - >查詢「處於頁面底部」
擁有一個帶有固定底部導航欄的單頁應用程序,並且希望顯示一個UI提示,指示有更多內容要顯示,條件是不在頁面結尾。思考有一個書籤方式(哈希標籤)來做到這一點。
這是一種解決方案:我已經創建結合滾動事件,並在它的情況是可能的指令,向下滾動顯示它的div,附加在編譯的時候:
app.directive('thereIsMore', function() {
return {
restrict: 'A',
scope: true,
compile: function(tElement) {
tElement.append('<div class="there-is-more" ng-show="bottom">There is more...</div>');
return function(scope, element) {
var elm = element[0];
var check = function() {
scope.bottom = !(elm.offsetHeight + elm.scrollTop >= elm.scrollHeight);
};
element.bind('scroll', function() {
scope.$apply(check);
});
check();
}; // end of link
}
};
});
謝謝!這正是我正在尋找的內容,但不幸的是,elm.scrollHeight在初始加載時並未在多個瀏覽器中準確報告。它需要scroll或resize事件來更新真正的scrollHeight。因此僅提供初始負載的準確指標是不夠的。所以底部返回true,直到用戶開始滾動,但顯示提示的最重要時間是在用戶滾動之前(因爲提示是爲了讓用戶滾動)。不知道如何解決此問題(在Chrome,Chromium,IE中失敗)。 –
我已經通過添加一些附加事件來更新plunker:當窗口被調整大小並在一些超時後重新檢查底部時。 –
看起來像超時和窗口大小調整了問題。謝謝! –
這是jquery/dom比angularJS相關的更多,在一天結束時,你將不得不寫一個指令。 – mpm
不知道scrollspy是否可以在這裏工作 –
另請參閱:https://github.com/angular-ui/ui-utils/blob/master/modules/scroll/README.md – apairet