Ver Mensaje Individual
  #8 (permalink)  
Antiguo 29/03/2013, 03:55
Avatar de pzin
pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 9 meses
Puntos: 2114
Respuesta: Evitar giro del navegador

Yo suelo aplicar otra solución usando media-queries.

Código CSS:
Ver original
  1. @media (orientation: portrait) {
  2.   #portrait {
  3.     display: block;
  4.     position: absolute;
  5.     top: 0;
  6.     left: 0;
  7.     width: 100%;
  8.     height: 100%;
  9.     z-index: 9999;
  10.   }
  11. }

Esto funciona para cuando el dispositivo esté en horizontal. Si lo necesites para vertical, entonces cambia portrait por landscape.

Dado que este en principio también va a afectar a navegadores de escritorio, ya que la consulta portrait es verdadera cuando el ancho del navegador es igual o inferior o su alto —o el alto igual o mayor que su ancho— lo mejor sería, en vez de crear el HTML necesario para #portrait, crearlo mediante JavaScript si el userAgent es un móvil. Yo usualmente hago algo así:

Código Javascript:
Ver original
  1. if ( /Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent) ) {
  2.   // crear elemento #portrait con un texto avisando de que tiene que girar el dispositivo
  3. }

Lo bueno de esto es que se activa siempre que el usuario gire el dispositivo o venga ya con el dispositivo girado. Y si el usuario no tiene JavaScript activado seguirá viendo el sitio con normalidad.