【发布时间】:2016-01-13 18:35:08
【问题描述】:
我需要使用 JavaScript 为我的 cordova android 应用程序获取窗口的宽度和高度。
我尝试过来自 JQuery 库的$(window).width() and $(window).height(),但结果是喜怒无常:
我在 Nexus 7 上进行测试,当我以纵向模式打开应用程序时,我得到宽度 = 600,高度 = 888。
当我将设备旋转到横向并重新计算它们应该交换时它们不会改变的尺寸,当我将设备旋转回纵向时,我得到宽度 = 960,高度 = 528。
我对这个输出感到非常困惑,这让我觉得我使用了错误的代码。非常感谢您的帮助或建议。
这里是获取屏幕尺寸的函数:
function getDimensions() {
//Gets height and width of web browser
var height = $(window).height();
var width = $(window).width();
//Stores dimensions in array of form [width,height]
var dimensions = [width,height];
return dimensions;
}
这是我在旋转后检查尺寸的地方:
function onOrientationChange() {
var dimensions = getDimensions();
console.log("rotation width " + dimensions[0] + " height " + dimensions[1]);
}
【问题讨论】:
-
你能发布你的代码吗?
-
我已编辑以包含我的 getDimensions() 函数
-
听起来您正在计算重绘出现之前的宽度和高度,从而导致旋转前窗口的宽度和高度。您如何检测旋转后的窗口重绘? 编辑:你有没有尝试在回调中使用 setTimeout 在方向事件发生后进行检查?
-
嗯...看起来还可以。我还在我的科尔多瓦应用程序中使用
$(window)来获取高度和宽度。你在哪里调用 getDimensions?
标签: javascript android jquery cordova