Problema de detección de cambio de orientación del dispositivo

Mi objetivo es reposicionar un contenedor cada vez que cambie la orientación del dispositivo. Debe ser tan simple detectar la orientación correcta pero en realidad no es porque la orientación puede ser diferente dependiendo del dispositivo.

¿Ideas simples sin tener que validar el sistema operativo del dispositivo con JavaScript?

Aquí hay un ejemplo sencillo:

<html> <head> <title>Orientation Test</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> <script> window.addEventListener( 'orientationchange', repositionMenu, false ); function isPortrait() { return deviceOrientation() === 0 ? true : false; } function isLandscape() { return deviceOrientation() !== 0 ? true : false; } function detectOrientation() { return isPortrait() ? 'portrait' : 'landscape'; } function deviceOrientation() { return window.orientation / 180; } function repositionMenu( e ) { alert( 'orientation: ' + detectOrientation() + '\nangle: ' + window.orientation ); }; </script> </head> <body> <h1>Orientation Test</h1> </body> </html> 

¡Gracias por adelantado!

  • ¿Cómo usar el archivo xxxx.md5 o cómo quitar la extensión .md5?
  • JQuery - Permitir teclado Autoshow en móvil
  • IScroll con desplazamiento nativo en un eje
  • Bootstrap de Twitter: no se cambia el tamaño de la barra de navegación en el cambio de orientación (solo con el navegador de acciones de Android)
  • Trabajadores web en navegadores móviles
  • ¿Es posible pasar parámetros url a google play? (Pasar cadenas de consulta)
  • FB.getLoginStatus nunca activa la devolución de llamada en navegadores móviles
  • ¿Cómo encajar en la pantalla después de cambiar el ancho de la ventana de visualización en el cambio de orientación?
  • Lectura de código de barras con foto tomada con cámara de teléfono móvil
  • Evento Javascript para el lanzamiento del navegador móvil o dispositivo despertador
  • ¿Cómo puedo desarrollar aplicaciones móviles usando HTML5?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.