Czy istnieje sposób na uzyskanie szerokości urządzenia użytkownika, w przeciwieństwie do szerokości widocznego obszaru, za pomocą javascript?
Jak mogę powiedzieć, zapytania o media CSS oferują to
@media screen and (max-width:640px) {
/* ... */
}
i
@media screen and (max-device-width:960px) {
/* ... */
}
Jest to przydatne, jeśli kieruję reklamy na smartfony w orientacji poziomej. Na przykład w systemie iOS deklaracja max-width:640px
będzie dotyczyła zarówno trybu poziomego, jak i pionowego, nawet na iPhonie 4. O ile wiem, nie dotyczy to Androida, więc użycie szerokości urządzenia w tym przypadku z powodzeniem jest ukierunkowane na obie orientacje, bez kierowania na komputery stacjonarne.
Jeśli jednak wywołuję powiązanie javascript na podstawie szerokości urządzenia, wydaje mi się, że ograniczam się do testowania szerokości widocznego obszaru, co oznacza dodatkowy test, jak poniżej,
if ($(window).width() <= 960 && $(window).height <= 640) { /* ... */ }
Nie wydaje mi się to eleganckie, biorąc pod uwagę wskazówkę, że szerokość urządzenia jest dostępna dla css.
Modernizr
może pomóc Ci to zrobić w „czysty i ogólny sposób”: stackoverflow.com/questions/25935686/… . Odnośnie pierwszego komentarza: możesz przejść do Google „Modernizr vs <otherLib> zapytanie o media”, aby dowiedzieć się, co działa najlepiej w Twoim przypadku