-1

このコードを使用して、ページの読み込み時にページの下部にスクロールしています:

$(function(){
 $.mobile.silentScroll(someValue);
}

このコードを使用すると、ページの一番下までスクロールできません。何が起こるかというと、0.5 秒間下にスクロールし、再びデフォルトの位置に戻ります。本文内でリストビュー、フッター、ヘッダーを使用しています。私はすでにpageshow、pageloadイベントを使用しようとしましたが、望ましい結果を得ることができません...

4

1 に答える 1

1

これを理解するには、jQuery Mobile がどのように機能するかを理解する必要があります。

一部の機能は では使用できません。$(function(){この時点では、ページは DOM にロードされるだけであり、jQuery Mobile はそのページで何も開始していません。この問題を解決するために、jQM 開発者はpage eventsと呼ばれるものを作成しました。

基本的$.mobile.silentScrollに、正しいページ イベント中にのみ使用できます。ただし、その場合でも、settimeout を使用するには、わずかな遅延を使用する必要があります。サイレント スクロールは、ページ ショーで使用するために作成されたものではありません。

$(document).on('pageshow', '#index', function(){ 
    setTimeout(function(){
        $.mobile.silentScroll(1500); 
    },100);
});

作業例: http://jsfiddle.net/Gajotres/2xfrM/

$(function(){あなたの場合、トリガー中にページのページの高さが正しくないため、ページが戻ってきます。ページの高さは pageshow イベントの間だけ正確ですが、それでもわずかな遅延が必要です。

于 2013-05-31T09:36:31.513 に答える