4

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

我尝试了以下属性/功能: $(window).innerWidth(true) $(window).outerWidth(true) screen.width $(window).width()

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

有什么建议么?

4

1 回答 1

3

幸运的是 window.orientation 在 onorientationchange 事件触发时已经更新。因此,作为一种解决方法,我打开它:

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;
}

不理想,但它有效。

于 2012-07-20T13:15:23.307 回答