Foros del Web » Creando para Internet » Diseño web »

[SOLUCIONADO] Evitar giro del navegador

Estas en el tema de Evitar giro del navegador en el foro de Diseño web en Foros del Web. Buenas, estoy desarrollando una web para smartphone y no quiero que el usuario pueda girar el navegador porque me descoloca toda la web, ¿Hay alguna ...
  #1 (permalink)  
Antiguo 27/03/2013, 03:12
 
Fecha de Ingreso: abril-2009
Mensajes: 63
Antigüedad: 15 años
Puntos: 0
Evitar giro del navegador

Buenas, estoy desarrollando una web para smartphone y no quiero que el usuario pueda girar el navegador porque me descoloca toda la web, ¿Hay alguna manera de evitarlo? He buscado información y solo he encontrado para desactivarlo a través del propio smartphone pero no desde el navegador.

Saludos.
  #2 (permalink)  
Antiguo 27/03/2013, 03:30
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: Evitar giro del navegador

Lo ideal sería que tu web se adaptara al usuario y no que el usuario se tenga que adaptar a ti. Creo que tendrías que darle un vistazo a los conceptos de diseño adaptativo ;)
__________________
Aviso: No se resuelven dudas por MP!
  #3 (permalink)  
Antiguo 27/03/2013, 03:43
 
Fecha de Ingreso: abril-2009
Mensajes: 63
Antigüedad: 15 años
Puntos: 0
Respuesta: Evitar giro del navegador

¿Y hay alguna manera de saber si el usuario a girado la pantalla?
  #4 (permalink)  
Antiguo 27/03/2013, 04:20
 
Fecha de Ingreso: abril-2009
Mensajes: 63
Antigüedad: 15 años
Puntos: 0
Respuesta: Evitar giro del navegador

Ya he resuelto mi problema, he creado un metodo de escucha para saber si cambia el tamaño de la pantalla.

Por si alguien lo necesita dejo el código.

Código HTML:
screenWidth = $(window).width();
screenHeight = $(window).height();
               
               setInterval(function () {
                           if ($(window).width() !== screenWidth || $(window).height() !== screenHeight) {
                           screenWidth = $(window).width();
                           screenHeight = $(window).height();
                           
                           alert('entra');                           
                           }
                }, 50);
Saludos!
  #5 (permalink)  
Antiguo 27/03/2013, 05:57
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: Evitar giro del navegador

Y si el usuario cuando comienza a ver tu web ya tiene el navegador "girado"?
__________________
Aviso: No se resuelven dudas por MP!
  #6 (permalink)  
Antiguo 27/03/2013, 07:06
 
Fecha de Ingreso: abril-2009
Mensajes: 63
Antigüedad: 15 años
Puntos: 0
Respuesta: Evitar giro del navegador

Da igual porque según el tamaño de la ventana posicionaba los divs y las imágenes, el problema que tenía antes era que se quedaba con la configuración del tamaño antes de girar la pantalla. Lo que hago ahora es recolocar los elementos si cambia el tamaño del navegador.

Saludos!
  #7 (permalink)  
Antiguo 28/03/2013, 15:23
Avatar de Tecna  
Fecha de Ingreso: enero-2010
Mensajes: 291
Antigüedad: 14 años, 3 meses
Puntos: 45
Respuesta: Evitar giro del navegador

Buenas,

hacer un serInterval y más con un intérvalo de tiempo tan reducido no es la mejor opción para dispositivos móviles porque producirá un consumo de recursos muy elevado e innecesario. Sería mejor controlarlo con el evento onresize.
  #8 (permalink)  
Antiguo 29/03/2013, 03:55
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 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.

Etiquetas: mobile
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:56.