在Android调整大小或方向更改事件后获得正确的窗口宽度

Get correct window width after resize or orientationchange event for Android

本文关键字:窗口 事件 调整 Android 方向      更新时间:2023-09-26

>I 将函数绑定到调整大小和方向更改事件。在这个函数中,我正在尝试读取窗口。Iphone总是给我正确的尺寸,但Android设备(2.2,2.3和4.0)似乎在实际更改窗口大小之前触发了事件。所以我总是得到最后一个窗口大小而不是最新的。有没有办法(没有超时)来获得正确的窗口大小?

我尝试了以下属性/函数: $(window).innerWidth(true) $(window).outerWidth(true) 屏幕宽度 $(窗口).宽度()

它们都没有给出正确的宽度。

有什么建议吗?

幸运的是,

当 onorientationchange 事件触发时,window.orientation 已经更新了。因此,作为解决方法,我打开它:

switch(window.orientation) {
    case 90:
    case -90: // portrait;
        h = Math.max(window.innerWidth, window.innerHeight);
        w = Math.min(window.innerWidth, window.innerHeight);
        break;
    default: // landscape
        h = Math.min(window.innerWidth, window.innerHeight);
        w = Math.max(window.innerWidth, window.innerHeight);
        break;
}

不理想,但它有效。