2012-05-09 4 views
9

Ich versuche, die verfügbare Bildschirmgröße in iPhone Safari zu erhalten, um einen Container auf die Höhe des Bildschirms ohne die Statusleiste und Symbolleiste zu verkleinern.iPhone Safari screen.availHeight und statusbar/toolbar/addressbar

Da iOS immer Bildschirmabmessungen zurückgibt, als ob das Telefon im Hochformat ausgerichtet ist, verwende ich screen.availWidth, um die Höhe in Querformat zu berechnen. Im Folgenden sind die Dimensionen zurückgegeben:

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

Der 20px Unterschied am Telefon für das Top-statusbar Konten aber nicht berücksichtigt nicht die Tastenleiste (Toolbar) am unteren Rand des Bildschirms.

Gibt es eine Eigenschaft, die ich 268px zurückgeben könnte?

Ich würde nur tun (screen.availWidth - 32), aber es gibt eine Chance, der Benutzer wird die Website als ein Desktop-Lesezeichen hinzufügen, in diesem Fall wird diese Leiste nicht vorhanden sein und der 300px Wert wäre korrekt.

+0

Nach mehr Forschung und Experimente die AvailWidth 300 macht Sinn - es ist die Höhe minus der 20px Statusleiste. Mit anderen Worten, abzüglich des Betriebssystems Chrome und nicht des Browsers Chrome. Der Wert war auch falsch für eine ältere iOS-Version und daher würde ich nicht empfehlen, sich zu sehr darauf zu verlassen. – howard10

+0

Überprüfen Sie meine Antwort auf ähnliche Frage, könnte ein wenig helfen http://StackOverflow.com/Questions/8205812/Jquery-JS-ios-4-and-Document-Height-Problems –

Antwort

10

Ich habe nicht die genaue Antwort, aber Sie können bestimmen, ob der Benutzer in Mobile Safari oder in Desktop-Lesezeichen mit navigator.standalone Eigenschaft ist. Mit diesem können Sie entscheiden, ob Sie 32px subtrahieren oder nicht.

Bearbeiten: Die Antwort gefunden. Verwenden Sie <meta name="viewport" content="user-scalable=no, width=device-width, height=device-height" /> und dann den richtigen Wert erhalten von window.innerWidth/window.innerHeight

+0

nach gelesen [diese] (http: // tripleodeon.com/2011/12/first-understand-your-screen/), kam ich zu ähnlichen Schlussfolgerungen. Danke, dass Sie mich in die richtige Richtung weisen. – howard10

Verwandte Themen