解决移动端输入法遮盖input输入框的问题…
2016-10-09 15:51
597 查看
一般的原生的系统里面并没有这个bug,但是第三方往往会出现
解决办法原理是通过给body添加scrollTop,把input的位置挪到最上面就可以了,
另一种通用方法是使用fixed定位到顶部,是可以解决,但是下面的内容会暴露出来,虽然通过嵌套一层能解决,而且脱离文档流,可能有样式问题,无疑又麻烦了,下面是真的第一种办法解决的demo
点击查看原文
点击查看在线demo
解决办法原理是通过给body添加scrollTop,把input的位置挪到最上面就可以了,
另一种通用方法是使用fixed定位到顶部,是可以解决,但是下面的内容会暴露出来,虽然通过嵌套一层能解决,而且脱离文档流,可能有样式问题,无疑又麻烦了,下面是真的第一种办法解决的demo
<html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <title>Examples</title> <meta content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0,user-scalable=no" name="viewport"> <meta name="description" content=""> <meta name="keywords" content=""> <link href="" rel="stylesheet"> <style type="text/css"> *{margin:0px; padding: 0px;} body,html{ padding: 5px;} .scrollDiv{width: 100%;height: 900px;background: #ccc;font-size: 24px;padding-top: 40px; text-align: center;} input{-webkit-appearance: none;width: 100%; display: block;margin:10px auto; border-radius: 0px;font-size: 16px; padding: 12px 10px;box-sizing:border-box;box-shadow: none;border:1px solid #666; } </style></head> <body style=""> <div class="main"> <div class="scrollDiv">滑到最下面</div> <input type="text" placeholder="点击我" id="inp"> </div> <script type="text/javascript"> var inp = document.querySelector('#inp'); var bodyHeight = document.body.offsetHeight ; inp.onclick = function(ev){ document.querySelector('body').style.height = '9999px'; setTimeout(function(){ document.body.scrollTop = document.documentElement.scrollTop = inp.getBoundingClientRect().top + pageYOffset -5; },50); window.addEventListener('touchmove',fn,false); } inp.onblur = function(){ document.querySelector('body').style.height="auto" document.querySelector('body').removeAttribute('style') window.removeEventListener('touchmove',fn,false) } //触摸取消blur function fn(ev){ var _target = ev.target || ev.srcElement; if(_target.nodeName != 'INPUT') {inp.blur();} ev.preventDefault() }; </script> </body> </html>
点击查看原文
点击查看在线demo
相关文章推荐
- (十一)ReactNative 解决TextInput输入框被输入法遮盖问题
- input输入框在移动端出现光标无法垂直居中的问题解决办法
- 解决移动端Web安卓机点击输入框,输入法遮挡输入框的问题
- 解决ios h5 input输入框被输入法弹出一块区域的问题
- Android软键盘使用及输入法挡住输入框的问题解决
- android 解决输入法键盘遮盖布局问题
- android中卡号输入框控件(每四位用空格分隔)(解决输入法跳转的问题)
- PopupWindow中解决输入法遮盖住编辑框的问题
- Android输入法弹出时覆盖输入框问题的解决方法
- 如何解决Android中输入法挡住输入框的问题
- 移动端input解决键盘问题 方案1
- 移动端解决fixed和input获取焦点软键盘弹出影响定位的问题
- 布局中上面一个子布局,中间一个listview,下面一个edittext,解决edittext点击后输入法遮盖布局的问题
- 如何解决Android中输入法挡住输入框的问题
- Android WebView加载带有Input的输入框时点击无法弹出软键盘的问题解决
- android 解决输入法键盘遮盖布局问题
- android 中解决输入法挡住输入框的问题
- android 解决输入法键盘遮盖布局问题
- android 解决输入法键盘遮盖布局问题
- android 解决输入法键盘遮盖布局问题