1) jQuery Mobile 1.1.0 はブラウザーのネイティブ スクロールを使用するため、サポートされているすべてのプラットフォームで自然に表示されます。
ただし、jQuery Mobiles には次の疑似ページ構造が必要です。
<div data-role="page">
<div data-role="header">
...
</div>
<div data-role="content">
...
</div>
<div data-role="footer">
...
</div>
</div>
data-role="content"
この構造に従うと、セクションを追加すればするほど、ページが長くなります。
2)イベントのイベント ハンドラーを設定してscroll
、ユーザーのスクロールを検出し、ユーザーがページをどれだけ下にいるかを確認できます。
//you don't want to set a bunch of AJAX requests at once,
//so set a flag so only one will go off at a time
var ajaxOK = true;
$(window).on('scroll', function () {
var yDistance = $('html, body').scrollTop();
//here you can check how far down the user is and do your AJAX call
if ((yDistance + $(window).height()) > ($.mobile.activePage.children('.ui-content').height() - 150)) {
//the user is within 150px of the bottom of the page
if (ajaxOK === true) {
ajaxOK = false;
$.ajax({ ... });
}
}
});
次に、AJAX 呼び出しのコールバック関数でajaxOK = true;
、ユーザーが再び一番下までスクロールしたときに起動するように設定します。
以下は、イベント ハンドラーif/then
内のステートメントの簡単な内訳です。scroll
(yDistance + $(window).height()) > ($.mobile.activePage.children('.ui-content').height() - 150)
(yDistance + $(window).height())
: スクロール距離にビューポートの高さを加えたもので、ページの Y 座標の下部を見つけます。
($.mobile.activePage.children('.ui-content').height() - 150)
: 現在のページの高さから のバッファーを差し引いた値で150px
、ユーザーがその中に入ることができ150px
、AJAX 呼び出しが発生します。