移動端滑動到底部載入更多,是如何做到的?

移動端滑動到底部載入更多,是如何做到的?


滾動到底部載入的判斷條件:滾動高度 + 可視高度 &>= 文檔高度

jQuery/Zepto寫法:

$(window).scrollTop() + $(window).height() &>= $(document).height()

原生js寫法:

window.pageYOffset + window.innerHeight &>= document.documentElement.scrollHeight

監聽事件:

window.addEventListener("scroll", function() {...}, false);

有幾處可以優化的點:

(1)函數節流

window的scroll事件觸發頻率非常高,應當使用節流機制限制事件處理函數的執行頻率,推薦underscore/lodash的throttle函數,當然也可以自己編寫。代碼如下:

window.addEventListener("scroll", _.throttle(eventHandler, 200), false);

(2)預載入

可以在未滾動到底部之前,提前一段距離預載入,這樣使得滾動比較平滑,不至於在底部卡頓一下。



就是計算滾動條位置,當滾動條位置加上網頁可視高度等於頁面高度時觸發載入函數


基於iscroll實現下拉和上拉刷新(優化) | 前端學習

剛好再找這個,然後找到一個不錯得博客


百度下拉到底自動載入


推薦閱讀:

React中如何實現雙向數據綁定?
為什麼說 DOM 綁定事件很耗性能?
在DOM里 屬性節點是不是元素節點的子節點?
fibjs 對比 nodejs 有哪些優點和缺點?
ECMAScript 6 會重蹈 ECMAScript 4 的覆轍嗎?

TAG:前端開發 | JavaScript | 手機移動端 |