一尘不染

在javascript中获取设备宽度

javascript

有没有一种方法可以使用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使用的提示,这对我来说似乎并不优雅。


阅读 291

收藏
2020-05-01

共1个答案

一尘不染

您可以通过screen.width属性获取设备的屏幕宽度。
有时,在处理窗口大小通常小于设备屏幕大小的桌面浏览器时,使用window.innerWidth(通常在移动设备上找不到)而不是屏幕宽度也很有用。

通常,在处理移动设备和桌面浏览器时,我使用以下内容:

 var width = (window.innerWidth > 0) ? window.innerWidth : screen.width;
2020-05-01