就遇到了这个问题,在PhoneGap的应用程序中的其他日子,但这种行为似乎也与新的Safari一致。
尽我所知,新的Safari会在键盘启动时调整报告给网页的视口。我有一个高度为100%的页面和一个绝对位于页面底部的导航栏。当键盘出现时,导航就随之而来。令人烦恼的是,这导致我的输入字段中的2个失去焦点,隐藏它们并使其无法完成登录!
以前,我使用可以避免高度=设备高度在视窗meta标签,因为旧的Safari似乎并不了解关于状态栏什么,以及报告的设备,高度为20像素总是太高,导致20px滚动以查看页面的最底部。
我最终使用的修复方法是设置height =设备高度,iOS7没有任何与视口大小调整/导航重叠相关的问题。令我惊讶的是,在所有情况下,页面仍然是设备高度的100%。
<meta name="viewport" content="width=device-width, height=device-height, user-scalable=no">
为了得到这个固定高度的情况与iOS5的和6一致地工作,我做了一些设备检测和人工计算设备高度 - 20像素,重置视口标签。
function iOSversion() {
if (/iP(hone|od|ad)/.test(navigator.platform)) {
// supports iOS 2.0 and later: <http://bit.ly/TJjs1V>
var v = (navigator.appVersion).match(/OS (\d+)_(\d+)_?(\d+)?/);
return [parseInt(v[1], 10), parseInt(v[2], 10), parseInt(v[3] || 0, 10)];
}
}
ver = iOSversion();
if (ver[0] >= 5 && ver[0] <= 6) {
$('head meta[name="viewport"]').attr("content", "width=device-width, height="+(window.innerHeight-20)+", user-scalable=no")
}
我觉得有点不对这个解决方案,但坚持摇滚(新的Safari浏览器)和硬地(旧Safari浏览器)之间,这是我的回答。
如果您找到更好的方法,请请让我知道!祝你好运:)
iOS7是有史以来最笨的浏览器。我认为他们应该把它推回 –
好吧...让我们不要在这里被带走,那里有ie 6依然漂浮在...:p – shibbybird
哦,我甚至想起它:p –