Ho sempre utilizzato il metodo di avere una classe di .no-js nel tag <html>
, quindi utilizzando modernizr che rimuove il tag e lo sostituisce con js se JavaScript è abilitato in il browser dell'utente.Utilizzo della classe .no-js per il rilevamento di js
Fondamentalmente, ho sviluppato una navigazione mobile e desktop CSS3. Ho degli stili per cambiare il suo comportamento se ci sono transizioni CSS ecc (verificate con modernizr) e se c'è js o no-js.
Il problema è che ho ottenuto un flash della versione no-js prima che JavaScript abbia avuto il tempo di caricare e modificare la classe in js. (perché la classe predefinita è no-js)
Quello che non riesco a capire è come trovare una soluzione per questo. Se inserisco il codice specifico di js come classi principali, quindi ne specifico un altro con il prefisso .no-js lampeggia il no-js anche se js è abilitato. Se lo cambio, fa lo stesso ...
Forse sono stupido, ma qualsiasi suggerimento sarebbe fantastico.
Stai ritardando l'esecuzione dello script fino al termine del caricamento della pagina? Se è così, non farlo - vuoi che venga eseguito prima che la pagina finisca il rendering. –
No, lo script è composto quasi interamente da CSS. C'è solo una piccola riga di jQuery. – ccdavies
Una riga è ancora tecnicamente uno script. Che aspetto ha questa linea e dove si trova nella tua pagina? –