2011-02-08 13 views
2

うまく動作している数年前に(JS/CSS/HTMLのLAMPバックエンドで)Webアプリケーションを作成しました。クライアントは現在、自分のiPhoneでそれを使用しており、2つの入力を持つログイン画面でウィンドウが「あまりにも大きく」ズームし、入力を完了すると「通常の」ズームレベルにズームしないことを報告しています(彼が送ったscreengrabsから、それは「normal」と入力に入力するときに使用されるズームレベルの間のどこかにズームするように見えます)。Javascript web-app、制御iPhone入力フォーカスとぼかしで

どちらの動作も制御できますか?私はユーザースケーラブルのメタについて読んだことがあります:0しかし、それはA)全く動作しないか、B)全くズームしないように思えます。

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

これは一般的なウェブアプリであり、「iPhoneアプリ」(これは従来のウェブ技術であり、CocoaやObjective-Cではありません)ではありません。私はiPhone、あるいは私がエミュレータを使用できるMacを所有していないし、私が見たウィンドウエミュレータはグラフィックのiframe以上のものではないようだ。

おかげ

+0

まず第一に、これは決して要求した場合、私はあなたがテストの目的のために、クライアントのフロントiPhoneを持っていますが、お勧めしたい、それならばあなたのアプリケーションのiPhoneとの互換性を確保するための時間を取ってくれたことを保証するために、iPhoneを先に購入してもらうことにしました。 – DoctorLouie

答えて

2

ユーザーズームオプションを残す場合は、それが戻ってウェブサイトオリジナルのズーム倍率に行くために彼次第です。ポートレートモードのiphone safaryブラウザでは、ズ​​ームイン、キーボードまたはコンボボックスが開かれる度にズームインされます。その後、元の縮尺に戻されません(画面をタップするか画面をつまんで...)。

その他のオプションは、キーボードを開いたりスピナーが開いたとき

イムは、現在、(それを解決する方法を探しているとき文句を言わないズーム次に、ユーザー

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

ビューポートのメタタグでズームiphoneをさせるされていませんキーボードが開いたときにズームを避けることでズーミングの可能性をマージする)しかし、私はそれを行う方法を見つけませんでした...

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); 

私のビューポートは、IDとして「ビュー」を持っていると言っているわけではありません。

はい、私はそれが最善の解決策ではないですけど、それが動作...

関連する問題