2012-02-22 13 views
5

así que he estado construyendo una aplicación web móvil y estoy tratando de ocultar la reorganización del diseño después de que el usuario ha rotado el teléfono (tengo un retrato y un diseño de paisaje establecido por js).¿La función de incendio antes de la ventana cambia el tamaño del contenido en el cambio de orientación?

había pensado que debería ser capaz de establecer $('body').display = "none"; cuando se dispara el cambio de tamaño y desaparecer el cuerpo de nuevo después de un segundo o menos, sin embargo, la confusión todavía ocurre antes de la display = "none" entra en acción.

¿Hay alguna forma para disparar una función tan pronto como la página gira para que pueda ocultar los elementos de reorganización? También probé con los oyentes de cambio de orientación pero parecen disparar directamente después de que el evento haya tenido lugar.

Respuesta

0

puede retrasar la reorganización con un tiempo de espera:

$(window).resize(function(){ 
    $('body').hide(); 
    setTimeout(function(){ 
     reshuffle(); 
     $('body').show(); 
    }, 100);//100ms 
}); 
+0

Gracias por la entrada, eso es casi exactamente el código im actualmente utilizando, el navegador parece renderizar el nuevo diseño de orientaciones con los valores CSS anteriores antes de que el .hide tenga tiempo de ser disparado por el cambio de tamaño (por lo que durante aproximadamente 50ms puedo ver el diseño no procesado) , creo que esto podría no ser factible de alguna manera = s – user885663

+0

gracias, adjunté esto a mi evento onorientationchange en lugar de cambiar el tamaño solo para darle otra oportunidad y parece funcionar un poco mejor, tal vez el 50% del tiempo se ve limpio y ordenado. También ayuda a configurar los elementos del contenedor a su color bg para que el bg blanco predeterminado no se muestre. – user885663

0

Usted puede intentar hacer esto:

$.when($('body').hide()).then(function() { 
    $(window).resize(function(){ 
     setTimeout(function(){ 
      reshuffle(); 
     }, 100);//100ms 
    }); 
}); 

documentation

+0

gracias por la respuesta rápida, voy a probar esto, pero no creo que vaya a resolver el problema, ya que el .hide realmente no se activa hasta después del evento de cambio de tamaño (a menos que luego pueda poner en cola el cambio de tamaño existente), entonces (si estoy pensando en cómo funcionará tu código de la manera correcta) se "disparará el tamaño después de rotar el teléfono" detectar que el cuerpo se ha ocultado> luego esperar a un cambio de tamaño> disparar una función de diseño demorado? – user885663

+0

La forma en que entendí tu problema fue que quería reorganizar después de que el cuerpo estaba oculto, y creo que esto (a menos que esté equivocado) –

+0

no tengo tiempo para probarlo en este momento, pero le haré saber cuándo lo puse en acción. Al igual que hará el trabajo, el problema al que parece que me estoy enfrentando es que el navegador de un teléfono no es lo suficientemente rápido como para seguir el ritmo de la orientación y esconder el contenido antes de que llegue al paisaje. – user885663

Cuestiones relacionadas