我在執行jQuery Mobile應用程序中的列表無盡滾動時遇到了一些麻煩。我現在使用的代碼是這樣的:在移動設備上無休止的滾動
$(window).on('scrollstop', function() {
if ($(window).scrollTop() >= $(document).height() - $(window).height() - 20) {
if(scrollLoad && currentPage < totalPages)
{
$.mobile.showPageLoadingMsg();
ShowMoreThings();
scrollLoad = false; //Is set to true on ajax success in ShowMoreThings().
}
}
});
但是這並不會導致刷新始終觸發。問題似乎是,只要用戶釋放屏幕就會觸發事件,並且視口在此之後繼續移動(由於滾動通常在移動設備上運行)。然後,事件將在移動時計算位置,並且不觸發刷新,因爲它尚未達到底部。然後,當視口位於頁面底部時,如果用戶因視口不移動而嘗試向下滾動,則不會觸發其他滾動事件。爲了觸發它,我需要稍微向上滾動然後再滾動。
我也試着聽scrollstart,但它並沒有觸發試圖滾動到「不存在的空間」。
這是因爲狀態欄和菜單欄包含在'$(window).height()'中嗎? – user123444555621
我不這麼認爲。因爲它的確能夠處理20px的邊際效果,但只有當我慢慢滾動時才行。我猜這個事件的時間是在20px間隔內觸發的。 – EasyPush