2012-05-09 11 views
9

Estoy tratando de obtener el tamaño de pantalla disponible en iPhone Safari para reducir el tamaño de un contenedor a la altura de la pantalla, menos la barra de estado y la barra de herramientas.iPhone Safari screen.availHeight and statusbar/toolbar/addressbar

Como iOS siempre devuelve las dimensiones de la pantalla como si el teléfono está en orientación vertical, estoy usando screen.availWidth para calcular la altura en el paisaje. Las siguientes son las dimensiones devueltos: representa

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

El 20 píxeles de la barra de estado superior en el teléfono, pero no tiene en cuenta la barra de botones (barra de herramientas) en la parte inferior de la pantalla.

¿Hay alguna propiedad que pueda usar que devuelva 268px?

Lo haría (screen.availWidth - 32) pero existe la posibilidad de que el usuario agregue el sitio como marcador de escritorio, en cuyo caso esta barra no estará presente y el valor 300px sería correcto.

+0

Después de más investigación y experimentación, la disponibilidad de 300 tiene sentido; es la altura menos la barra de estado de 20 px. En otras palabras, menos el OS Chrome y no el navegador Chrome. El valor también era incorrecto para una versión anterior de iOS, por lo que no recomendaría confiar demasiado en él. – howard10

+0

Compruebe mi respuesta a una pregunta similar, podría ayudar un poco http://stackoverflow.com/questions/8205812/jquery-js-ios-4-and-document-height-problems –

Respuesta

10

No tengo la respuesta exacta, pero puede determinar si el usuario está en Mobile Safari o en el marcador de escritorio con la propiedad navigator.standalone. Con esto puedes decidir si restar 32px o no.

Editar: Encontrado la respuesta. Use <meta name="viewport" content="user-scalable=no, width=device-width, height=device-height" /> y luego obtenga el valor correcto de window.innerWidth/window.innerHeight

+0

Al leer [esto] (http: // tripleodeon.com/2011/12/first-understand-your-screen/), estaba llegando a conclusiones similares. Gracias por señalarme en la dirección correcta. – howard10

Cuestiones relacionadas