1

次のコードを使用して(0, 0)、ユーザーがPhonegapアプリケーション内の入力フィールドにフォーカスするたびにウィンドウをスクロールして配置します。

<input type="text" id="answer" class="answer" />
...

$(document).on("touchstart", ".answer", function() {
  window.scrollTo(0, 0);
});

私も試しましたがsetTimeout()、これも機能しません:

$(document).on("touchstart", ".answer", function() {
  window.scrollTo(0, 0);
  setTimeout(function() {
     scrollWindow();
  }, 10);

  var scrollWindow = function() {
     window.scrollTo(0, 0);
  }
});

問題は、入力フィールドを2回タップしたときにのみウィンドウがスクロールすることです。入力フィールドを初めてタップしたときに、ウィンドウをすぐにスクロールしたいのですが。

私がウィンドウを移動している理由は、iOSが入力フィールドのフォーカスにネイティブキーボードを生成し、ビュー全体を上にシフトするためです。

4

1 に答える 1

1

これを行うために、私は通常「タッチスタート」の代わりに「フォーカス」を使用します。

$('#someFormId input').on("focus", function(event) {
    window.scrollTo(0, 0);
    document.body.scrollTop = 0;
});
于 2012-09-14T04:33:23.533 に答える