我需要找到移动设备的设备宽度。 虽然我们可以指定内容
<meta name="viewport" content="width=device-width; user-scalable=no" />
但我需要以编程方式获取设备宽度以在我的应用程序中计算某些逻辑。如何获得设备宽度?
答案 0 :(得分:41)
可以通过viewport
对象收集window
维度:
var viewport = {
width : $(window).width(),
height : $(window).height()
};
//can access dimensions like this:
//viewport.height
虽然您不会总是得到完美的结果,但不同的设备会有不同的行为,这会给出viewport
尺寸,而不是屏幕尺寸。
或者,您可以检查data-role="page"
元素的宽度以找到device-width
(因为它设置为100%
的{{1}}):
device-width
答案 1 :(得分:18)
不确定提议的解决方案是否按预期工作。你确定你得到了真正的设备宽度吗?
我在我的应用中使用以下代码并且工作正常:
function effectiveDeviceWidth() {
var deviceWidth = window.orientation == 0 ? window.screen.width : window.screen.height;
// iOS returns available pixels, Android returns pixels / pixel ratio
// http://www.quirksmode.org/blog/archives/2012/07/more_about_devi.html
if (navigator.userAgent.indexOf('Android') >= 0 && window.devicePixelRatio) {
deviceWidth = deviceWidth / window.devicePixelRatio;
}
return deviceWidth;
}
希望它可以帮助别人!