之前写手机端自适应手机设备页面的时候,遇到了一个问题,就是比如有一个页面,需要输入手机号,验证码,在你点击输入框的时候,整个背景图片被挤压变形,变得特别难看,秩序加入下面这行代码,就可解决背景图片被挤压变形的问题;
//解决背景图向上挤压变形
$('body').height($('body')[0].clientHeight);
还有一个问题就是,上面的js代码在安卓手机上是可以完美解决的,但是在苹果手机中就会出现一些问题,点击输入框之后,整体的背景图会放大,进而页面布局就会变形,很难看关于这个问题前面的文章讲过,就是让背景图片静止缩放就行了。
在苹果手机中还有一个问题就是,点击输入框,输入内容之后,关闭输入法,顶上去的背景图回不来,在屏幕下方就会出现空白,很难看,尤其是还有弹出层的时候,就会出现在下方,简直不要太难看,以下几行代码就可解决:
//苹果手机输入法关掉后背景图下方留白
var u = navigator.userAgent, app = navigator.appVersion
var isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
$(document).ready(function(){
$("input").blur(function(){
if (isIOS) {
blurAdjust()
// alert("1231321233")
}
});
});
// 解决苹果不回弹页面
function blurAdjust(e){
setTimeout(()=>{
// alert("1231321233")
if(document.activeElement.tagName == 'INPUT' || document.activeElement.tagName == 'TEXTAREA'){
return
}
let result = 'pc';
if(/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) { //判断iPhone|iPad|iPod|iOS
result = 'ios'
}else if(/(Android)/i.test(navigator.userAgent)) { //判断Android
result = 'android'
}
if( result = 'ios' ){
document.activeElement.scrollIntoViewIfNeeded(true);
}
},100)
}