C'è un modo per ottenere la larghezza del dispositivo dell'utente, invece della larghezza del viewport, usando javascript?
Le query multimediali CSS offrono questo, come posso dire
@media screen and (max-width:640px) {
/* ... */
}
e
@media screen and (max-device-width:960px) {
/* ... */
}
Questo è utile se sto mirando agli smartphone con orientamento orizzontale. Ad esempio, su iOS una dichiarazione max-width:640px
riguarderà sia la modalità orizzontale che quella verticale, anche su un iPhone 4. Questo non è il caso di Android, per quanto ne so, quindi l'utilizzo della larghezza del dispositivo in questo caso mira con successo a entrambi gli orientamenti, senza prendere di mira i dispositivi desktop.
Tuttavia , se sto invocando un binding javascript basato sulla larghezza del dispositivo, mi sembra di essere limitato a testare la larghezza del viewport, il che significa un test extra come di seguito,
if ($(window).width() <= 960 && $(window).height <= 640) { /* ... */ }
Questo non mi sembra elegante, dato il suggerimento che la larghezza del dispositivo è disponibile per css.
Modernizr
può aiutarti a fare questo "in modo pulito e generico": stackoverflow.com/questions/25935686/… . Per quanto riguarda il primo commento: potresti voler cercare su Google "Modernizr vs <otherLib> media query" per scoprire cosa funziona meglio per il tuo caso d'uso