Có cách nào để lấy chiều rộng thiết bị của người dùng, trái ngược với chiều rộng khung nhìn, sử dụng javascript không?
Các truy vấn phương tiện CSS cung cấp điều này, như tôi có thể nói
@media screen and (max-width:640px) {
/* ... */
}
và
@media screen and (max-device-width:960px) {
/* ... */
}
Điều này rất hữu ích nếu tôi đang nhắm mục tiêu điện thoại thông minh theo hướng ngang. Ví dụ: trên iOS, khai báo về max-width:640px
sẽ nhắm mục tiêu cả chế độ ngang và dọc, ngay cả trên iPhone 4. Theo như tôi có thể nói thì đây không phải là trường hợp của Android, vì vậy, sử dụng chiều rộng thiết bị trong trường hợp này nhắm mục tiêu thành công cả hai hướng, mà không nhắm mục tiêu thiết bị máy tính để bàn.
Tuy nhiên , nếu tôi đang gọi một liên kết javascript dựa trên chiều rộng thiết bị, thì dường như tôi bị giới hạn trong việc kiểm tra chiều rộng khung nhìn, có nghĩa là một thử nghiệm bổ sung như trong phần sau,
if ($(window).width() <= 960 && $(window).height <= 640) { /* ... */ }
Điều này có vẻ không thanh lịch đối với tôi, với gợi ý rằng chiều rộng thiết bị có sẵn cho css.
Modernizr
có thể giúp bạn thực hiện việc này "theo cách rõ ràng và chung chung": stackoverflow.com/questions/25935686/… . Về nhận xét đầu tiên: bạn có thể muốn google "Modernizr vs <otherLib> media query" để tìm hiểu những gì phù hợp nhất cho trường hợp sử dụng của bạn