safari浏览器输入法遮挡input解决方案
2018-09-25
2,759 views
0 min read
safari浏览器用户在输入一些诸如用户名密码一类的东西时,通常会发生输入法遮挡住输入框的情况,而其他浏览器不会.
那是因为其他浏览器例如Chrome,当用户输入法弹出时,浏览器高度也随之改变,变为手机屏幕高度-输入法高度,所以我们能在弹出输入法后依然能滑动浏览器到底部.
但是safari不同,用户输入法弹出后浏览器高度不会改变,当用户输入时,如果输入框下方页面足够长,浏览器会自动滑动页面,让输入框在输入法上方,倘若输入框下方的页面不够往上抬,则只能让输入法遮住输入框.
此解决方案思路为当用户输入时,在html底部,即页面底部添加一个带高度的空div,使其高度约等于输入法高度.用户结束输入时,移除此div.
$().ready(function(){
$('input').focus(function(){
if (isBrowser() == "Safari") {
var clear_height = 0;
clear_height = $(window).height() / 3;
$('html').append(
'<div class="fucking_safari" style="width:100%;">'+
'</div>'
);
$('.fucking_safari').height(clear_height);
}
})
$('input').blur(function(){
if (isBrowser() == "Safari") {
$('.fucking_safari').remove();
}
})
})
isBrowser()
为判断浏览器函数,详情见此,在需要用到的页面引入此js即可.
Previous Post
TradingView简易教程(二) —— UDF接口
Next Post
Nodejs Http请求数据被分段
Or you can contact me by Email