我正在制作一款主要面向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时,它似乎有一些时髦的尺寸)。
该解决方案可供稍后对此感兴趣的人参考。
全部谢谢!