先上图

 
 通常在开发中我们会遇到这样输入框被遮挡的问题,那么该怎么解决呢?
方案一(css):

首先,把置底元素设置成,在页面的底部而非屏幕的底部

.page .bottom {
position: absolute;
bottom: 0;
width: 100%;
border: 0;
text-align: center;
z-index: 5;
}

然后,设置页面的高度,让按钮有置底的效果

.page {
background: #fff;
color: #384369;
position: relative;
width: 100%;
overflow-y: auto;
height: 100vh;
min-height: 480px;
}

注意有最小高度,因为当键盘弹起时,100vh是缩小的那部分的高度,而不是屏幕高度
*如果有大屏的需求,适配一下就好

这样,当键盘弹起时,内容就是可以滚动的了,出于用户体验的需求,可以在focus输入框的时候,把滚动条划一下,露出输入框

function whenFocus(){
document.body.scrollTop = document.documentElement.scrollTop =86;
}

具体的数值可以再调整

方案二(css):
<div class="main">
<div class="content"></div>
<button></button>
</div>

设置content为 overflow: auto;
让content的高度为 100vh-buttonHeight

方案三(flex布局):

使用第二种的html

.main{
height: 100vh;
display: flex;
flex-direction: column;
justify-content: space-between;
.content {
overflow: auto;
}
}
方案四(js):

其实,当移动端弹起键盘的时候会触发window的onresize事件,把webview的高度变小了,知道了这个我们就可以用js来操作

给input或者textarea绑一个onfocus事件

scrollIntoView(v,e){
setTimeout(() => {
window.scrollTo(0, e.target.offsetTop)
},500)
},

注意:当输入框的父元素使用了position:relative的时候,输入框的offsetTop的值就会有问题

移动端键盘顶起遮挡输入框&offsetTop值不准问题的更多相关文章

  1. iOS 键盘弹出遮挡输入框

    #pragma mark 键盘弹出遮挡输入框 //开始编辑输入框的时候,软键盘出现,执行此事件 -(void)textFieldDidBeginEditing:(UITextField *)textF ...

  2. iOS学习——键盘弹出遮挡输入框问题解决方案

    在iOS或Android等移动端开发过程中,经常遇到很多需要我们输入信息的情况,例如登录时要输入账号密码.查询时要输入查询信息.注册或申请时需要填写一些信息等都是通过我们键盘来进行输入的,在iOS开发 ...

  3. iOS Android中 h5键盘遮挡输入框的问题和解决方案

    问题发现:在 Android 部分机型 和 iOS部分系统下 键盘会出现遮挡输入框的情况(壳内).问题解决: Android 经过测试,Android 的6.0版本以上均会出现改问题,归根到底是之前的 ...

  4. iOS学习——tableview中带编辑功能的cell键盘弹出遮挡和收起问题解决

    最近在项目中经常用到UITableView中的cell中带有UITextField或UITextView的情况,然后在这种场景下,当我们点击屏幕较下方的cell进行编辑时,这时候键盘弹出来会出现遮挡待 ...

  5. 移动端 fixed 固定按钮在屏幕下方,然后按钮被键盘顶上来...顶上来了有没有~

    在移动端 H5 页面开发中,我使用了 fixed 固定某个元素在屏幕的最下方, 这时点击输入框,接着非常非常自然地出现了元素被系统键盘顶起来的情况,如下图. 解决方案: 首先,给页面最外层包裹一层 d ...

  6. H5 移动端 键盘遮挡焦点元素解决方案

    前言 最近在做 webapp,遇到了很多移动端兼容的问题,其中一个问题就是:输入框触发 focus 后,键盘弹出,然后遮住了输入框. 然后在Android和IOS上,这个问题的表现形式不一样,而原生键 ...

  7. iOS键盘遮挡输入框,输入区域自动上移

    在iOS开发过程当中,遇到关于键盘遮挡输入框的问题,经过网络参考与实践,总结如下: 登录窗口,上下放置两个UITextField,一个用户名,一个密码,放置的在屏幕下方1/3处,当点击用户名时,自动弹 ...

  8. iOS- UITextView与键盘回收与键盘遮挡输入框

    一.UITextView 可以实现多行输入的文本框,基本属性与UITextField相似,可以输入多行,可以滚动.UITextView还有个代理方式- (BOOL)textView:(UITextVi ...

  9. Android WebView中软键盘会遮挡输入框相关问题

    要想实现这样的软键盘出现的时候会自己主动把输入框的布局顶上去的效果,须要设置输入法的属性,有下面两种设置方式:     一.在java代码中设置例如以下:      getWindow().setSo ...

随机推荐

  1. 关于爬虫的日常复习(16)—— pyspider的初高级用法

  2. Ninject 初步 -Getting Started with Ninject 精通ASP-NET-MVC-5-弗瑞曼 Listing 6-10

  3. Doxygen -- part 2

    Documenting the code 这个章节涵盖两个主题: 如何在你的代码中放置注释, 一遍doxygen可以在生成的文档中囊括它们. 如何组织一个注释块的内容, 以使得输出美观. 特殊注释块 ...

  4. generic

    是什么 算法实现时保有待定类型的参数. 为什么 一份代码用于多个算法(当算法中只数个类型不同的时候) 可重新性 很多常用算法和容器数据结构都可以type-generic的方式实现 why not 许多 ...

  5. 使用FileZilla Pro S3协议访问七牛云对象存储

    偶然发现FileZilla还有Pro版本,主要是比免费版多了一些协议支持,也偶然发现七牛云支持了S3协议接口,这样刚好弥补了其没有FTP的不足,于是找官方文档,折腾一下,使用FileZilla Pro ...

  6. 微软CEO:我们员工以及他们家人的健康与安全是我们最高的优先级!

    在肺炎疫情开始之初,微软中国各个部门就立即采取了各种的防控和关怀措施. 在昨天,微软 CEO Satya Nadella 给微软中国全体员工写了一封邮件. 其中,最让我们感动的就是这句话:" ...

  7. springboot中使用Caffeine本地缓存

    Caffeine是使用Java8对Guava缓存的重写版本性能有很大提升 一 依赖 <dependency> <groupId>org.springframework.boot ...

  8. javaweb-codereview 学习记录-5

    1.关于URLConnection 应用程序利用url与远程通信的所有类的超类 jdk1.8中支持的协议包括以上这些,gopher在jdk8中取消了. java中默认对(http|https)做了一些 ...

  9. CUDA学习(七)之使用CUDA内置API计时

    问题:对于使用GPU计算时,都想知道kernel函数运行所耗费的时间,使用CUDA内置的API可以方便准确的获得kernel运行时间. 在CPU上,可以使用clock()函数和GetTickCount ...

  10. Ceph 存储集群3-部署:

    ceph-deploy 工具是一种部署 Ceph 的方法,它只依赖到服务器的 SSH 访问. sudo 和 Python .它可在你的工作站上运行,不需要服务器.数据库.或其它工具.如果你安装.拆卸过 ...