0

テキストフィールドを編集するとき、ネイティブキーボードはWebビューをポップアップし、そのままにします。便座を上げたままにするのと同じです。ネイティブキーボードを格納した後、元のスクロール位置に戻すにはどうすればよいですか?キャッチできるイベントがあります。私は醜いハックを考えており、編集するたびにWebビュー全体をリロードします。それが行く唯一の方法のようです。

4

1 に答える 1

2

CSS セレクターをサポートするいくつかのライブラリーが存在すると仮定します。

var positionResetHandler = function () {
  var self = {},
      lastY = null;

  self.inputFieldFocusHandler = function () {
    lastY = window.scrollY;
  };

  self.inputFieldBlurHandler = function () {
    if (lastY) {
      window.scrollTo(0, lastY);
      lastY = null;
    }
  };

  return self;
};

var handler = positionResetHandler();

$("input").bind("focus", handler.inputFieldFocusHandler);
$("input").bind("blur", handler.inputFieldBlurHandler);

任意の入力フィールドのフォーカスで、ページの y 位置を記録します。入力フィールドがぼやけたら、ページをスクロールして最後の既知の y 位置に戻します

于 2012-11-03T21:04:12.657 に答える