Ho utilizzato un numero di librerie (incluso il mio) per caricare dinamicamente le risorse in base alle query multimediali che ho delineato nei file CSS. Per esempio:Accesso alle regole di query media CSS tramite JavaScript/DOM
In CSS:
@media screen and (max-width: 480px) {
.foo {
display: none;
}
}
E utilizzando un caricatore di asset; require.js, modernizr.js ecc o utilizzando window.matchMedia
e associati addListener()
funzioni:
if (function("screen and (max-width: 480px)")){
// Load several files
load(['mobile.js','mobile.css']);
}
Dichiarare due volte è imbarazzante/leggera e, per quanto posso trovare, tutte le librerie di supporto e di attività caricatori JS richiedono di ripetere le domande dei media, piuttosto che individuandoli a livello di programmazione da JS/DOM.
Quindi, ho esplorato la possibilità di accedere ai valori in modo programmatico tramite document.stylesheets
, ma non sono sicuro che siano accessibili e sembra che ci siano pochissimi documenti da suggerire.
Il più lontano che ho è in cerca di CSSMediaRule
e utilizzando console.dir(document.stylesheets)
tra gli altri per esplorare l'oggetto del foglio di stile.
Tuttavia, non vengono apportati riferimenti (entro document.stylesheets
) alle regole di query dei supporti effettive utilizzate nei CSS: solo le classi da applicare come risultato delle query dei supporti ... Quello che sto cercando di individuare, a livello di programmazione, è :
"schermo e (max-width: 480px)"
esiste un modo di accedere ad interrogazione CSS media regole tramite JavaScript/DOM?
Ops, collegamento sbagliato, [ecco l'articolo che stavo cercando in coderwall] (https: // coderwall. com/p/_ldtkg) – steveax
Buona domanda. Per i miei scopi, ho sempre controllato se elementi specifici erano visibili o meno, poiché la mia interazione JavaScript si applicava a quegli elementi. Tuttavia, dovrebbe esserci una soluzione migliore e più generale. – Brad
Ehi, controlla. Può essere una soluzione. https://github.com/nathansmith/adapt/blob/master/assets/js/adapt.js –