2017-07-21 28 views
0

我试图在用户旋转屏幕时更改网页中某个元素的大小(特别是对于iPad而言,也适用于所有移动设备)。新尺寸将根据新屏幕尺寸进行计算。如何在iPad屏幕旋转后获得新的窗口大小?

我试过使用window.onresize = myFcn;,但resize事件在我的iPad上无法正确激活。

我已经尝试过使用window.onorientationchange = myFcn;,但事件在屏幕实际尺寸改变之前被触发,所以我无法使用它们来计算出正确的新表大小。

我尝试过使用setTimeout(myFcn, 50),正如在我读过的答案中所建议的那样,但是这只是创建了一个无限循环,因为在循环运行时维度不会改变。

如何在取向改变后获得新的屏幕尺寸?

回答

1

如果将2和3相结合,那么设备将完成其方向更改(如果不足够,则可能会增加)为50毫秒。

window.onorientationchange = function() { 
    setTimeout(myFcn, 50); 
}; 
+0

这工作,虽然我不得不等待500毫秒,以使其始终如一地使用新的尺寸。我担心这会在某些设备上崩溃,但它似乎是目前最好的选择。 – GreySage