解决移动端键盘弹出后,遮挡住表单的问题

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 即可。

 

如有表述不准确之处,欢迎指正,欢迎补充,感谢阅读!

 

以上是关于解决移动端键盘弹出后,遮挡住表单的问题的主要内容,如果未能解决你的问题,请参考以下文章

web页面移动端键盘弹出后对页面布局的影响

移动端点击文本框 键盘弹出解决访问

移动端输入框固定在底部键盘抬起时遮挡住输入框

移动端中 H5输入框在弹起键盘后被遮挡

移动端文本框被原生键盘弹出后挡住文本框

移动端键盘遮挡input问题