在javascript中获得精确的物理移动分辨率
我正在构建一个页面,向用户显示尽可能多的设备信息。对于移动设备,物理分辨率与浏览器解释的分辨率不同,因为否则高分辨率设备无法很好地显示页面 例如,我的Moto X风格的分辨率为1440 X 2560像素,甚至高于大多数PC显示器。它是按设备像素比例缩小的,在我的设备上设置为3.5。这使得“解释分辨率”为412 x 732像素 对于许多设备,将在javascript中获得精确的物理移动分辨率,javascript,css,mobile,browser,Javascript,Css,Mobile,Browser,我正在构建一个页面,向用户显示尽可能多的设备信息。对于移动设备,物理分辨率与浏览器解释的分辨率不同,因为否则高分辨率设备无法很好地显示页面 例如,我的Moto X风格的分辨率为1440 X 2560像素,甚至高于大多数PC显示器。它是按设备像素比例缩小的,在我的设备上设置为3.5。这使得“解释分辨率”为412 x 732像素 对于许多设备,将屏幕[宽度/高度]的解释分辨率乘以窗口.devicePixelRatio就足够了。然而,在我的例子中,这只是一个估计,结果是1442 x 2562,大概是因
屏幕[宽度/高度]
的解释分辨率乘以窗口.devicePixelRatio
就足够了。然而,在我的例子中,这只是一个估计,结果是1442 x 2562,大概是因为四舍五入
有没有可靠的方法可以得到这个精确的值?或者可以抑制这些值的舍入?非常感谢您的任何想法。您可以尝试此方法以获得当前设备的确切高度和宽度
var w = window.innerWidth;
var h = window.innerHeight;
查看此页面:
很明显,它会随着设备的不同而变化,但您的做法是正确的:
Math.round(screen.width||height*window.devicePixelRatio)
祝你好运。我使用这些来获取浏览器窗口的宽度/高度
getWindowWidth: function() {
if (true) {
try {
return document.documentElement.clientWidth;
}
catch (error) {}
}
else {
try {
return window.innerWidth;
}
catch (error) {}
}
return 0;
},
getWindowHeight: function() {
if (true) {
try {
return document.documentElement.clientHeight;
}
catch (error) {}
}
else {
try {
return window.innerHeight;
}
catch (error) {}
}
return 0;
},
这些值不等于屏幕大小,而是窗口大小。如果你真的读过我的问题,你会发现我已经找到了屏幕尺寸。再说一遍,这对我并没有什么帮助。在这种情况下,我认为有必要使用screen.width/height,因为这是实际的屏幕,而不是窗口/文档尺寸。您可以获得这些
user\u-agent:navigator.userAgent.toLowerCase()
和user\u-platform:navigator.platform.toLowerCase()
,并将它们与已知设备列表进行比较。如果您使用的是PHP或其他,您可以获得$SERVER[“HTTP\u USER\u AGENT”]
并将其与列表进行比较。这里有一个指向一长串用户代理的链接。screen.width
和screen.height
我不想依赖这样的列表,因为市场上有这么多不同的手机。这样的清单不可能涵盖所有的电话。