Android调整大小或orientationchange事件后获取正确的窗口宽度

时间:2012-05-10 09:25:21

标签: javascript jquery android

我将函数绑定到resize和orientationchange事件。在这个函数中我试图读取windowwith。 Iphone总是给我正确的尺寸,但Android设备(2.2,2.3和4.0)似乎在实际更改windowssize之前触发事件。所以我总是得到最后的windowsize而不是最新的。是否有某种方式(没有超时)来获得正确的窗口大小?

我尝试了以下属性/功能:     $(窗口).innerWidth(真)     $(窗口).outerWidth(真)     screen.width     $(窗口).WIDTH()

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

有什么建议吗?

1 个答案:

答案 0 :(得分:3)

幸运的是,当onorientation事件触发时,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;
}

不理想,但有效。