1

今日、ユーザーが入力テキストを選択すると、iOS でページがスクロールするという「典型的な」問題に直面しています。ポイントは、多くのテキストを含むスクロール可能なページを使用していて、これが必要だということです。そのため、デフォルトを防止したり、ビューを最小化したりして、スクロールを無効にするソリューションを使用することはできません..

基本的に、ページをスクロールせずにソフトウェア キーボードを開く必要があります。

また、ユーザーに適した解決策を見つける必要があります-画面の点滅などはありません...いくつかの調査の後、最終的に機能する解決策を見つけることができました。

以下の私の答えを見てください。

4

1 に答える 1

3

アイデアは、ページをできるだけ早く元の位置に戻し、iOS のスクロール アニメーションを防ぐことです。

入力テキスト フィールドにハンドラーを追加するだけfocusで、このハンドラーで最初にwindow.scrollTopプロパティを読み取り、0 ミリ秒の遅延で元に戻します。

これが私のコードです(jQueryを使用):

$("#myinput").on("focus", function() {
    var scrollTop = $(window).scrollTop();
    setTimeout(function() {
        $(window).scrollTop = scrollTop;
    }, 0);
});

これにバグがないことを願っています-実際に私は TypeScript を使用しているので、元のコードをここで見たい場合は:

this._inputText.on("focus", () => {
    var jQueryWin:JQuery = <JQuery>$(window);
    var scrollTop:number = jQueryWin.scrollTop();   
    setTimeout(() => {
        jQueryWin.scrollTop(scrollTop);
    }, 0);
});

OK - これが、入力要素を処理する際の不要なページ スクロールをより適切に制御するのに役立つことを願っています。

于 2013-02-06T19:33:39.483 に答える