Lo schermo bianco si sta parlando dei risultati di questa classe dichiarata in jQm CSS:
/*fouc*/
.ui-mobile-rendering > * { visibility: hidden; }
La classe si aggiunge quando jQm comincia a inizializzare
// Add mobile, initial load "rendering" classes to docEl
$html.addClass("ui-mobile ui-mobile-rendering");
e rimosso il prima pageshow
.
L'intera procedura è necessaria, in quanto altrimenti si vedrebbe il markup pre-potenziato fino a quando JQM non avrà finito di renderlo. Quindi, se si vuole "remove", si potrebbe dichiarare:
.ui-mobile-rendering > * { visibility: visible; }
ma si dovrebbe vedere tutto il codice sorgente di essere toccato da jQuery Mobile.
Soluzioni alternative so:
alimentazione marcatura pre-enhanced, invece di jQm farlo
Questa è una specie di un calvario prima jQm 1.4 (dove si avrà molto meno elementi e la possibilità di raccontare jQm generato , che i widget vengono forniti pre-potenziati), ma può essere fatto, anche se richiede la riscrittura di alcuni widget.
Anche da quello che vedo nel tuo codice, il tuo problema dovrebbe essere, che l'immagine di avvio di iOS scompaia quando vuole (= prima che JQM sia inizializzato) rispetto a te che hai il controllo su di esso e lo nascondi quando JQM è finito.
Quindi: utilizzare un altro mezzo di insabbiamento come una schermata di avvio personalizzata
Per esempio, io sto facendo this o this. Entrambe le applicazioni sono caricate con requireJS e usano uno script di avvio personalizzato che ho scritto (dopo aver tirato i capelli con le immagini di avvio di iOS).
Ecco come funziona:
- aggiungere una classe di
splash
al corpo. CSS:before
uno sfondo bianco completo (... loading) immagine di sfondo opzionale
- aggiungere tramite CSS o Javascript (senza jQuery o jQm, perché deve essere eseguito prima di o viene analizzato)
- rimuovere
splash
sul pageshow dal corpo. Come sempre rimani sulla pagina caricata per prima (a meno che non usi rel="external"
, il body
persiste, così puoi tranquillamente aggiungere la classe a tutte le tue pagine e verrà eseguito solo il coverup sulla prima pagina che l'utente carica.
Nasconde la schermata di avvio impostata quando JQM è terminato, quindi non avrai uno schermo bianco.Inoltre funziona cross-browser (vs immagine di avvio iOS) e può essere facilmente utilizzato con diverse dimensioni di immagine (prova la 2a applicazione con dispositivi diversi & portait/paesaggio).
Se si vuole un esempio di codice completo, me lo faccia sapere.
firebug della pagina, controllare l'ultimo div 'ui-loader' prima della chiusura del tag' body'. – Omar
@ Omar, stai suggerendo di nascondere l'elemento ui-loader con i CSS? ti dispiacerebbe inviarci un'e-mail all'indirizzo info @ at @ panabee.com? piacerebbe vedere se sei interessato alla consulenza HTML5. – Crashalot
Oppure potrebbe essere la classe 'ui -overlay-c' che viene aggiunta a' body', prova a modificare questa classe. Dove "c" è il tema di pagina predefinito. – Omar