Obtener el ancho de ventana correcto después del cambio de tamaño o el evento orientationchange para Android
Asigné funciones al acontecimiento del cambio de tamaño y de la orientación. En esta función estoy tratando de leer la ventana con. Iphone siempre me da los tamaños correctos, pero los dispositivos Android (2.2, 2.3 y 4.0) parecen activar el evento antes de cambiar el Windows. Así que siempre obtengo el último windowsize y no el más nuevo. ¿Hay alguna manera (sin timeouts) para conseguir el windowsize correcto?
Intenté seguir atributos / funciones: $ (ventana) .innerWidth (true) $ (ventana) .outerWidth (true) screen.width $ (window) .width ()
- El evento no se dispara después de actualizar la versión 6.0.2 de Android OS
- Cordova / Phonegap Todas las Solicitudes de Ajax Externas Devuelve 404
- Javascript android window.onorientationchange se dispara continuamente
- Javascript backbutton evento oyente anula el dispositivo Android botón de nuevo
- Incluya algunas páginas en una página en JQuery móvil
Ninguno de ellos está dando la anchura correcta.
¿Alguna sugerencia?
- Determinar y vincular eventos de clic o "toque"
- Html5 etiqueta de vídeo para jugar a pantalla completa con Android
- Forzar la ocultación de la barra de direcciones en Chrome en Android
- Cordova vibrar no funciona
- IScroll - Preservar desplazamiento vertical nativo - funciona en iOS, no en Android
- Obtenga coordenadas del centro de la página web en dispositivos de tableta mediante JavaScript
- ¿Cómo redireccionar a la página local html en phonegap android app?
- Copia al portapapeles en jquery / javascript sin flash para ipad / iphone
Afortunadamente window.orientation ya está actualizado cuando se desencadena el evento onorientationchange. Así que como una solución alternativa que encienda que:
switch(window.orientation) { case 90: case -90: // portrait; h = Math.max(window.innerWidth, window.innerHeight); w = Math.min(window.innerWidth, window.innerHeight); break; default: // landscape h = Math.min(window.innerWidth, window.innerHeight); w = Math.max(window.innerWidth, window.innerHeight); break; }
no es ideal, pero funciona.