2010-02-22 19 views

Respuesta

19

Puede usar la propiedad window.orientation. Su valor es el grado en que se usa el modo de vista actual. He aquí un breve ejemplo:

function updateOrientation() 
{ 
    var orientation=window.orientation; 
    switch(orientation) 
    { 

     case 0: 

       break; 

     case 90: 
       break; 

     case -90: 

       break; 
    } 

} 

Se puede utilizar esta función en este evento:

window.onorientationchange=updateOrientation; 

Espero que ayude!

5

El navegador móvil Safari cuenta con el apoyo para el evento orientationchange, así como la propiedad orientation en la ventana, por lo que se puede hacer algo como:

window.onorientationchange = function() { 
    switch(window.orientation) { 
     case 0: // Portrait 
     case 180: // Upside-down Portrait 
      // Javascript to setup Portrait view 
      break; 
     case -90: // Landscape: turned 90 degrees counter-clockwise 
     case 90: // Landscape: turned 90 degrees clockwise 
      // Javascript to steup Landscape view 
      break; 
    } 
} 

yo añadiría el revés ya que la interfaz humana iPad las directrices dicen que debe admitir todas las orientaciones, por lo que esperaría que Safari en el iPad (y posiblemente futuras versiones de iPhone) lo admitan.

7

Mejor no establezca la propiedad onorientationchange directamente. En su lugar utilice la siguiente:

window.addEventListener('orientationchange', function (evt) { 
    switch(window.orientation) { 
     case 0: // portrait 
     case 180: // portrait 
     case 90: // landscape 
     case -90: // landscape 
    } 
}, false); 
+0

Esto es definitivamente más correcta que la respuesta aceptada. –

5

No puedo creer que nadie hablaba de la sentencia css:

@media screen and (max-width: 320px) // Portait Mode 
{ 
/* CSS RULINGS */ 
p{} 
body{} 
} 

@media screen and (min-width: 321px) // Landscape Mode 
{ 
/* CSS RULINGS */ 
p{} 
body{} 
} 
Cuestiones relacionadas