var u = navigator.userAgent;
var isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);
//判断是否为ios
if(isIOS){
var ua = navigator.userAgent.toLowerCase();
var ver=ua.match(/cpu iphone os (.*?) like mac os/);
//获取ios版本
let vesion = ver[1].replace(/_/g,"");
vesion = vesion.substring(0,3)
// alert(vesion)
if(vesion!=112){
setTimeout(() => {
//把输入框滚动到可视范围
document.getElementById('ins').scrollIntoView(true);
},1000)
}
}
-webkit-overflow-scrolling: touch;会引起滑动区域在部分ios系统偶尔不显示的问题:
再加上以下两行css解决:
输入法遮挡问题:当前解决方案,用以下:获取焦点时
‘ins’为底部输入块,解决大部分苹果输入法遮挡问题,ios11.2 使用scrollIntoView(true)会起反作用,故除去,其他的还没发现。这样基本都可以实现了。测试发现输入框遮挡,绝大部分都是有第三方输入法的关系!
还有一个问题,收起输入法页面不会收回,就是会出现一片空白的区域的问题:
在失去焦点时调这个方法:
图片如下:
