开发网页的时候遇到一个非常恶心的问题,ios中,一个页面有一系列input需要填写,假设有10个,点击后面几个,弹出键盘,一般会超出页面长度的。这个时候,如果收起键盘,页面不会回弹导致底部出现空白部分,这个时候,点击页面上的一些按钮会点击不中。
我这里的一个非常蠢的办法,就是判断当input失去焦点的时候,主动滚动
let u = window.navigator.userAgent;
let res = {
mobile: !!u.match(/AppleWebKit.*Mobile.*/),
ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/),
android: u.indexOf("Android") > -1 || u.indexOf("Linux") > -1,
iPhone: u.indexOf("iPhone") > -1,
iPad: u.indexOf("iPad") > -1
};
if (res.iPhone || res.iPad) {
$('body').on('touchend', function (el) {
if (el.target.tagName != 'INPUT') {
$('input').blur(function () {
document.body.scrollTop = document.body.scrollHeight;
})
}
})
}