H5在部分iOS系统中软键盘收起页面不回落、input输入内容显示不全解决方法

1.部分iOS系统中软键盘收起H5页面不回落

项目中遇到了,页面中input框输入信息软件盘弹起,输入完成后,点击确定,软件键盘收起时,发现页面底部滚动到上面,底部留白,页面不会弹到底部。解决方法如下:

    // 解决H5页面ios软键盘收回页面卡半屏问题
	$("input,select").blur(function() {
		var u = navigator.userAgent;
		if (u.indexOf('iPhone') > -1) {
			//苹果手机
			setTimeout(() => {
				const scrollHeight = document.documentElement.scrollTop ||     
                document.body.scrollTop || 0;
				window.scrollTo(0, Math.max(scrollHeight - 1, 0));
			}, 100);
		}
	})
    //解决H5页面安卓机型中软键盘收回页面卡半屏问题
	const el = document.documentElement || document.body
	const originHeight = el.clientHeight
	window.addEventListener('resize', () => {
		const resizeHeight = el.clientHeight
		if (resizeHeight < originHeight) {
		} else {
			$("input,select").blur()
		}
	}, false)

2.部分iOS机型中input输入内容显示不全

在ios系统上聚焦input输入框输入文字,只有第一个字能显示,后面的字都无法显示,只有光标在动
收起键盘,失焦后显示正常

(1)一个很蠢但有效的解决方法,强制页面做了细微的滑动

  $(document).on('input', 'input[name=name]',function (e) {
    let index = $('input[name=name]').val().length * 0.01,
       _top = $(".edit_modal").scrollTop();
    e.target.scrollIntoView(true);
    $(".edit_modal").animate({ scrollTop: _top + index + 'px'}, 0);
  })      

(2)给输入框加个聚焦事件:

handleFocus(e) {
    setTimeout(function() {
        e.target.scrollIntoView(true)
        e.target.scrollViewIfNeeded()
    }, 200)
}

 

只是浅陋,如果有写的不正确或更好的方法、欢迎留言拍砖!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值