我正在尝试将图像设置为 phoneGap 应用程序上屏幕的全高。目前,我正在使用以下代码来确定屏幕“尺寸”,并且我正在使用 javascript 将图像分辨率设置为这些暗淡。
$('.fullPageImage').height(window.screen.availHeight);
这会在 iPhone 6(视网膜显示屏)上产生所需的结果,并在我的笔记本电脑上进行渲染。问题是当我在我的 Galaxy Note-3 上尝试它时,图像非常大,原因如下:当我console.log(window.screen.availHeight);
的 Note 似乎认为它的高度是1920像素时 - 而我的 iPhone 6 只有647(它是视网膜显示器) ,所以我知道 1920 不是实际的像素数(或者是吗?)。我查看了设备是如何获取它的window.screen.availHeight
,发现有这个变量被调用window.devicePixelRatio
,它在 Note 3 上的值是3。我认为 Note 3 的视口尺寸是 360x640,因此 devicePixelRatio 的3是有意义的。现在,让我感到困惑的是,当我console.log(window.devicePixelRatio);
在我的 iPhone 6 上时,结果是2. 我尝试使用以下代码将图像高度设置为“availHeight”值的 1/3:
$('.fullPageImage').height(window.screen.availHeight/window.devicePixelRatio);
它在 Note 3 上效果很好(因为它将图像高度缩小到 360 - 应该是这样),但在 iPhone 上,将图像缩小到 324(或接近的值)意味着图像只出现在页面的一半以上高度。
我的问题是,不是除以 devicePixelRatio,而是我可以从设备获得另一个变量以确定缩小图像的比率?生成的比率在 iPhone 上应为1 ,在 Note 3 上应为1/3,以使图像正确显示在整个高度上。
非常感谢您!