2

数年前に Web アプリ (LAMP バックエンドを介した JS/CSS/HTML) を作成しましたが、これは正常に動作しています。クライアントは現在、iPhone でそれを使用しており、2 つの入力があるログイン画面で、ウィンドウが「ズームインしすぎ」、入力の入力が完了しても、「通常の」ズーム レベルに戻らないと報告しています。 (彼が送信したスクリーングラブから、「通常」と入力に入力するときに使用されるズームレベルの間のどこかにズームバックするように見えます)。

どちらの動作も制御できますか? user-scalable:0 のメタについて読んだことがありますが、A) まったく機能しないか、B) ズームが完全に妨げられるようです。

2 番目の問題はより重要だと思います (ユーザーがテキストを入力した後、「通常の」縮尺にズームバックする必要があります)。

繰り返しますが、これは一般的な Web アプリであり、「iPhone アプリ」ではありません (Cocoa や Objective-C ではなく、従来の Web テクノロジに基づいて構築されています)。私はエミュレーターを使用できる iPhone や Mac を所有していません。

ありがとう

4

2 に答える 2

2

ユーザーのズームオプションを残す場合、ウェブサイトの元のズームスケールに戻るのは彼次第です. ポートレート モードの iPhone サファリ ブラウザは、キーボードまたはコンボボックスが開かれるたびにズームインします。その後、元の縮尺にズームバックしません (画面をダブルタップするか、画面をピンチして行う必要があります...)。

他のオプションは、ユーザーがビューポートのメタタグでズームできないようにすることです

     <meta name="viewport" id="view" content="user-scalable=no, width=device-width, initial-scale=1.0" />

次に、キーボードが開いているとき、またはスピナーが開いているときにiPhoneがズームしません

私は現在、それを解決する方法を探しています(キーボードが開いたときにズームを回避してズームの可能性をマージします)が、それを行う方法が見つかりませんでした...

于 2011-02-25T13:07:07.573 に答える
1

ビューポートで遊んで解決しました:あなたが言ったように、ユーザーズームが有効になっていない場合、キーボードまたはコンボを開いてズームしませんが、ユーザーのズーム機能が失われます。

コンボが選択されているときにビューポートのズームを無効にし、1 秒後にズーム オプションを復元します。

document.documentElement.addEventListener("touchstart", function (event) {
          if((event.target.nodeName == "SELECT") || (event.target.nodeName == "INPUT") || (event.target.nodeName == "TEXTAREA")) { //it is a combo
                document.getElementById("view").setAttribute('content', 'width=device-width, user-scalable=no');
                setTimeout(function () {
                    document.getElementById("view").setAttribute('content', 'width=device-width, user-scalable=yes');
                }, 1000);
            }
            }, true);

私のビューポートには「view」というIDがあるとは言えません。

はい、それが最善の解決策ではないことはわかっていますが、うまくいきます...

于 2012-01-16T08:30:23.117 に答える