9

ステータスバーとツールバーを除いた画面の高さにコンテナを縮小するために、iPhone Safariで利用可能な画面サイズを取得しようとしています。

iOS は常に電話が縦向きであるかのように画面のサイズを返すため、screen.availWidth を使用して横向きの高さを計算しています。返される寸法は次のとおりです。

screen.width; //320
screen.availWidth; //300

20 ピクセルの違いは、電話の上部ステータスバーを考慮していますが、画面下部のボタン バー (ツールバー) は考慮していません。

268px を返すプロパティはありますか?

(screen.availWidth - 32) としますが、ユーザーがサイトをデスクトップ ブックマークとして追加する可能性があります。その場合、このバーは表示されず、300px の値が正しいでしょう。

4

1 に答える 1

10

正確な答えはわかりませんが、ユーザーが Mobile Safari を使用しているか、navigator.standaloneプロパティを使用してデスクトップ ブックマークを使用しているかを判断できます。これにより、32px を差し引くかどうかを決定できます。

編集:答えが見つかりました。を使用する<meta name="viewport" content="user-scalable=no, width=device-width, height=device-height" />と、正しい値を取得できますwindow.innerWidth / window.innerHeight

于 2012-05-09T08:03:57.333 に答える