解决移动端键盘弹出后,遮挡住表单的问题
Posted 凉飕飕111
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决移动端键盘弹出后,遮挡住表单的问题相关的知识,希望对你有一定的参考价值。
监听resize事件,然后定位到input、textarea输入框,也可以理解为监听input或者textarea状态,当屏幕滚动到input或者textarea,上下居中。就可以解决键盘遮挡表单的问题了
window.addEventListener('resize', () =>
if(document.activeElement.tagName === 'INPUT' ||
document.activeElement.tagName === 'TEXTAREA')
window.setTimeout(() =>
document.activeElement.scrollIntoViewIfNeeded();
, 0);
);
移动端键盘遮挡input问题
在开发移动端项目的时候测试提出优化问题,即:
input 获取焦点弹出系统虚拟键盘时, input 被键盘遮挡问题(PS:此问题只在安卓手机上有,ios系统是有自动处理的)。
解决办法为:
当 input 获取焦点时,获取 input 在页面中位置相对屏幕一半位置的距离 thisTop,然后给 body 加入一个 div ,高度为thisTop+50,然后设置页面的scrollTop为thisTop+50,以此保证input获取焦点的时候在屏幕中间偏上;
输入完成后隐藏动态加入的 div 即可。
如有表述不准确之处,欢迎指正,欢迎补充,感谢阅读!
以上是关于解决移动端键盘弹出后,遮挡住表单的问题的主要内容,如果未能解决你的问题,请参考以下文章