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 も聞いてみましたが、「存在しないスペース」にスクロールしようとしてもトリガーされません。