本人的系统是11.3的是正常的,却发现测试机的11.1和11.2的光标位置在输入框的下边。百度一下,很多人有同样的问题,在此记录一下
解决办法一:
//弹框弹出后执行如下代码
$('body').css({'position': 'fixed', 'width': '100%'});
//弹框关闭后执行如下代码
$('body').css({'position': 'relative'});
但是我发现这样的写法,每次点输入框时需要点击两点才能显示光标
解决办法二:
后来又找到 了另一种 办法
userName.on('focus',function(){
mask.attr('style','display:flex;position:absolute;');
$('html').addClass('noscroll');
})
userPhone.on('focus',function(){
$('html').addClass('noscroll');
mask.attr('style','display:flex;position:absolute;')
});
userPhone.on('blur',function(){
mask.attr('style','display:flex;position:fixed;')
$('html').removeClass('noscroll');
})
userName.on('blur',function(){
mask.attr('style','display:flex;position:fixed;')
$('html').removeClass('noscroll');
})
}
在input的focus和blur设置postion;因为出现光标位置不正常是因为iphOne不能很好的解析position是fixed
对应的css
.noscroll,
.noscroll body {
overflow: hidden;
}
.noscroll body {
position: relative;
}
在此基础上优化
$('.mask').on('touchmove', function(event) {
event.preventDefault();
});
这样下面的内容就不会滚动 了