我需要使用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]);
}
答案 0 :(得分:0)
尝试: var w = window.innerWidth; var h = window.innerHeight; 我知道这适用于网络浏览器
答案 1 :(得分:0)
您必须使用orientationchange 事件:
当设备的方向发生变化时会触发orientationchange事件。
Window.orientation 属性,其中包含代表当前方向的数字(有关详细信息,请查看下面的图片)。
注意!:window.orientation在桌面浏览器中返回undefined。所以请在模拟器或设备上进行测试。
解决方案:
window.addEventListener("orientationchange", orientationChange);
function orientationChange() {
switch (window.screen.orientation) {
case "landscape-primary":
//your function over here: getDimensions();
break;
case "portrait-primary":
//your function over here: getDimensions();
break;
default:
break;
}
}