Existe-t-il un moyen d'obtenir la largeur de l'appareil des utilisateurs, par opposition à la largeur de la fenêtre, en utilisant javascript?
Les requêtes multimédias CSS offrent cela, comme je peux le dire
@media screen and (max-width:640px) {
/* ... */
}
et
@media screen and (max-device-width:960px) {
/* ... */
}
Ceci est utile si je cible les smartphones en orientation paysage. Par exemple, sur iOS, une déclaration de max-width:640px
ciblera à la fois les modes paysage et portrait, même sur un iPhone 4. Ce n'est pas le cas pour Android, pour autant que je sache, donc utiliser la largeur de l'appareil dans ce cas cible avec succès les deux orientations, sans cibler les appareils de bureau.
Cependant , si j'invoque une liaison javascript basée sur la largeur de l'appareil, je semble être limité à tester la largeur de la fenêtre, ce qui signifie un test supplémentaire comme ci-dessous,
if ($(window).width() <= 960 && $(window).height <= 640) { /* ... */ }
Cela ne me semble pas élégant, étant donné l'indication que la largeur de l'appareil est disponible en css.
Modernizr
peut vous aider à le faire «de manière propre et générique»: stackoverflow.com/questions/25935686/… . En ce qui concerne le 1er commentaire: vous pouvez consulter Google "Modernizr vs <otherLib> media query" pour découvrir ce qui fonctionne le mieux pour votre cas d'utilisation