2012-02-22 13 views
5

quindi mi sono creato una webapp mobile e sto cercando di nascondere il rimpasto del layout dopo che l'utente ha ruotato il telefono (ho un ritratto e un layout orizzontale impostato da js).La funzione incendio prima che la finestra ridimensioni il contenuto sul cambio di orientamento?

Avevo pensato che dovrei essere in grado di impostare $('body').display = "none"; quando i fuochi di ridimensionamento e svanire il corpo torna in dopo un secondo o giù di lì, ma il riordino avviene ancora prima che i display = "none" calci.

Esiste un modo sparare una funzione non appena la pagina ruota in modo da poter nascondere gli elementi di rimpasto? Ho anche provato gli ascoltatori di onorientationchange ma sembrano attivarsi direttamente dopo che l'evento ha avuto luogo.

risposta

0

è possibile ritardare il rimpasto con un timeout:

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

grazie per l'ingresso, questo è più o meno esattamente il codice im attualmente usando, il browser sembra rendere il nuovo layout di orientamenti con i vecchi valori di css prima che il .hide abbia il tempo di essere attivato dal ridimensionamento (quindi per circa 50ms posso vedere il layout non mescolato) , penso che questo potrebbe non essere fattibile in qualche modo = s – user885663

+0

grazie, l'ho allegato al mio evento onorientationchange invece di ridimensionarlo solo per dargli un altro tentativo e sembra funzionare leggermente meglio, forse il 50% delle volte sembra pulito e ordinato. Aiuta anche a impostare tutti gli elementi del contenitore sul tuo colore bg in modo che non venga mostrato il valore predefinito del bianco. – user885663

0

si può provare a fare questo:

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

documentation

+0

grazie per la rapida risposta, darò una prova comunque non penso che risolverà il problema in quanto l'immagine non entra in realtà fino a dopo l'evento di ridimensionamento (a meno che non sia possibile accodare il ridimensionamento esistente), quindi (se Sto pensando a come il tuo codice funzionerà nel modo giusto) "ridimensionerà il fuoco dopo che il telefono è stato ruotato> rileva che il corpo è nascosto> quindi attendi un ridimensionamento> attiva una funzione di layout ritardato?" – user885663

+0

Il modo in cui ho capito il tuo problema era che volevi rimescolare dopo che il corpo era nascosto, e credo che faccia questo (a meno che non mi sbagli) –

+0

non ho abbastanza tempo per testarlo adesso ma ti farò sapere quando lo metto in azione. come farà il lavoro, il problema che mi sembra di affrontare è che il browser su un telefono non è abbastanza veloce per stare al passo con l'orientamento e nascondere il contenuto prima che arrivi al panorama. – user885663

Problemi correlati