动态视口

时间:2011-12-12 02:20:52

标签: javascript css ios dynamic viewport

我正在制作一款主要面向iOS的网络应用。我希望它在横向和纵向中工作,就好像它是一个原生应用程序(所以没有缩放)。我在设置时找到了

<meta name="viewport" content="width = device-width, height = device-height, maximum scale = 1.0, minimum-scale = 1.0">

为肖像作品; device-height是纵向的全高,设备宽度是纵向的全宽。但是,当设备旋转到横向时,Safari仍会尝试在新的横向宽度上强制执行原始宽度(320)(放大320到480)。我已尝试动态重置视口,如

document.getElementById("viewport").setAttribute('content', 'width = ' + maxWidth + ', height = ' + maxHeight + ', maximum-scale = 1.0, minimum-scale = 1.0');

其中maxHeight和maxWidth是重定向后的新高度/宽度比例,但Safari给出了“undefined; TypeError:”null“不是对象”错误。

我不想为每种情况指定不同的样式表(iphone屏幕,iphone视网膜屏幕,ipad,以及很快可能的ipad视网膜) 我想保持它的通用性 我希望它能在其他浏览器上本地工作 我很懒惰

所以我希望我有意义......任何人都可以帮助我吗?基本上我想在运行时更改视口以匹配横向/纵向高度。感谢

编辑:解决方案 我使用的是getElementById,但默认情况下viewport没有ID。所以我只是添加了它,它现在有效。

<meta name="viewport" id="viewport" content="width = device-width, height = device-height, maximum scale = 1.0, minimum-scale = 1.0">

但是,第一次页面呈现(onload)时,它没有正确设置。所以我添加了一个     setOrientation() 在页面底部,以便在页面完全加载后设置方向(第一次)(当将视口设置为窗口大小onload时,它似乎有一些时髦的尺寸)。

该解决方案可供稍后对此感兴趣的人参考。

全部谢谢!

0 个答案:

没有答案