Javascript iOS 7 Mobile Safari键盘上下滚动事件的问题
我正在测试一些滚动事件,并注意到在iOS 7 Mobile Safari中,有一个滚动事件在键盘上启动,而不是在键盘上/下启动。我想知道是否有人知道这是为什么 我个人认为这是一个bug(我正在尝试报告它,但目前无法登录到bug tracker),他们应该选择在键盘上上下滚动事件,或者选择根本不抛出它们,因为视图似乎返回到以前的状态 为了演示这个问题,我创建了一个小网站,在这个网站上,你可以点击输入框,看到一个滚动事件在键盘上启动,但在键盘菜单上按“完成”时不会启动,屏幕会滚动到它的初始位置。我添加了一个可扫描的二维码,可以将您发送到下面的测试url。提前谢谢 测试URL:Javascript iOS 7 Mobile Safari键盘上下滚动事件的问题,javascript,html,ios,safari,mobile-safari,Javascript,Html,Ios,Safari,Mobile Safari,我正在测试一些滚动事件,并注意到在iOS 7 Mobile Safari中,有一个滚动事件在键盘上启动,而不是在键盘上/下启动。我想知道是否有人知道这是为什么 我个人认为这是一个bug(我正在尝试报告它,但目前无法登录到bug tracker),他们应该选择在键盘上上下滚动事件,或者选择根本不抛出它们,因为视图似乎返回到以前的状态 为了演示这个问题,我创建了一个小网站,在这个网站上,你可以点击输入框,看到一个滚动事件在键盘上启动,但在键盘菜单上按“完成”时不会启动,屏幕会滚动到它的初始位置。我添
测试qr:您使用的是phonegap还是什么? 如果您正在将phonegap与iscoll.js一起使用,那么您只需要在设备中触发键盘事件时刷新滚动条 以下是键盘事件的链接: 在关闭键盘时,您只需调用以下代码:
window.scrollTo(0, 0);
前几天在Phonegap应用程序中遇到了这个问题,但这种行为似乎也与新的Safari一致 据我所知,新的Safari会在键盘打开时调整报告给网页的视口的大小。我有一个高度为100%的页面,导航绝对位于页面底部。当键盘出现时,导航也随之出现。令人烦恼的是,这导致我的2个输入字段失去焦点,隐藏它们,使登录无法完成 以前,我避免在viewport meta标记中使用height=device height,因为旧的Safari似乎不了解状态栏的任何内容,并且报告的设备高度总是20px太高,导致20px的滚动可以看到页面的最底部 我最终使用的修复方法是设置height=设备高度,iOS7在视口大小调整/nav重叠方面没有任何问题。令我惊讶的是,页面在所有情况下都保持了100%的设备高度
<meta name="viewport" content="width=device-width, height=device-height, user-scalable=no">
为了使这种固定高度的情况与iOS5和ios6保持一致,我进行了一些设备检测,并手动计算了设备高度-20px,重置了视口标记
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")
}
函数iOSversion(){
if(/iP(hone | od | ad)/.test(navigator.platform)){
//支持iOS 2.0及更高版本:
var v=(navigator.appVersion).match(/OS(\d+)\uD+)\uD+(\d+)/);
返回[parseInt(v[1],10),parseInt(v[2],10),parseInt(v[3]| | 0,10)];
}
}
ver=iOSversion();
如果(ver[0]>=5&&ver[0]iOS7是有史以来最糟糕的浏览器。我认为他们应该把它回滚……让我们不要忘乎所以,这里仍然有IE6在浮动……:pOh我甚至想都没想:pI正在努力解决同样的问题(即试图停止那些讨厌的滚动事件)祝你好运,如果我发现了什么,我会让你知道的!你可能也想看看这个主题-。它不完全一样,但足够好的想法。这是没有电话差距。纯JS。我应该试试。会让你知道的!