Есть ли способ получить ширину устройства пользователя, а не ширину области просмотра, с помощью JavaScript?
Медиа-запросы CSS предлагают это, как я могу сказать
@media screen and (max-width:640px) {
/* ... */
}
а также
@media screen and (max-device-width:960px) {
/* ... */
}
Это полезно, если я ориентируюсь на смартфоны в альбомной ориентации. Например, в iOS объявление max-width:640px
будет нацелено как на альбомный, так и на портретный режимы, даже на iPhone 4. Насколько я могу судить, это не относится к Android, поэтому использование device-width в этом случае успешно нацелено на обе ориентации. , без таргетинга на настольные устройства.
Однако, если я вызываю привязку javascript в зависимости от ширины устройства, мне кажется, что я ограничен проверкой ширины области просмотра, что означает дополнительный тест, как показано ниже.
if ($(window).width() <= 960 && $(window).height <= 640) { /* ... */ }
Мне это не кажется элегантным, учитывая намек на то, что ширина устройства доступна для css.
Modernizr
может помочь вам сделать это простым и универсальным способом: stackoverflow.com/questions/25935686/. Что касается 1-го комментария: вы можете захотеть использовать медиа-запрос Google Modernizr vs ‹otherLib›, чтобы узнать, что лучше всего подходит для вашего варианта использования. - person Adrien Be   schedule 08.12.2016