问题描述:移动端页面输入框聚焦伴随着键盘弹起,底部icon浮到键盘上方,导致样式不友好

解决思路:在键盘弹起时,不让原本固定在底部的icon自动浮起。监听屏幕的实时高度,控制底部按钮的显示与否,从而达到按钮固定在底部的效果。

解决方案(本例是在vue框架下实现的解决方案代码):

html:

1
2
3
4
<div class="login-content-footer" v-if="heightChange">
   <img src="../../assets/images/login-wxLogin.png" alt="" class="login-content-footer-wxLogin" @click="wxLogin" v-show="WxFlag">
   <img src="../../assets/images/personal-footer.png" class="login-content-footer-img">
</div>

data部分:

1
2
3
4
5
6
7
data () {
   return {
      heightChange: true,
      docmHeight: document.documentElement.clientHeight,  //默认屏幕高度
      showHeight: document.documentElement.clientHeight,   //实时屏幕高度
  }
}   

监听屏幕实时高度:  

1
2
3
4
5
6
7
8
9
watch:{
    showHeight() {
        if (this.docmHeight > this.showHeight) {
          this.heightChange = false;
        else {
          this.heightChange = true;
        }
      },
}

mounted周期:

1
2
3
4
5
6
mounted() {
      // window.onresize监听页面高度的变化
      window.onresize = () => (() => {
        this.showHeight = document.body.clientHeight;
      })();
}, 

结果:

Android手机键盘弹起时实时屏幕高度会改变,但是苹果手机无论是默认输入法还是安装的其他输入法,键盘弹出的高度不会改变,但是庆幸的是大部分ios已经支持了fixed属性

还发现一个小的bug就是苹果手机点击输入框时偶尔会闪现一个icon,通过给父元素加入position:relative和足够的padding-bottom解决了,之后我发现可以用position:absolute定位父元素给position:relative和足够的padding-bottom能达到同样的效果^_^

转载于:https://www.cnblogs.com/shuihanxiao/p/10642179.html

移动端键盘弹起导致底部按钮上浮解决方案相关推荐

  1. 如何解决移动端键盘弹起将底部导航栏顶起

    一行代码搞定 /*输入键盘弹起,底部导航栏消失*/ var bottomEl = document.querySelector('footer'); // 可见区域高度减去元素的高度 bottomEl ...

  2. 移动端键盘弹起底部固定模块会被顶上去

    问题:键盘弹起将底部按钮顶上去遮住输入框 解决思路:实时监听窗口高度与初始高度比较,判断键盘是否弹起,弹起隐藏底部否则显示底部 /vue/ <div class='footer' v-show= ...

  3. android软键盘弹出底部有黑色闪出,vue移动端安卓软键盘弹出底部按钮顶起

    在做一个基于企业微信的h5移动页面时,当软键盘弹出时,底部fixed定位在ios上没事,安卓手机上,底部按钮会被顶起到软键盘,查看原应时由于软键盘顶起时,安卓设备的视图会变小.造成固定定位按钮呗顶起. ...

  4. 移动端软键盘弹起遮挡输入框问题的解决方案

    移动端软键盘弹起遮挡输入框问题的解决方案 1.背景 原生app与H5页面混合开发时,input输入框唤起软键盘时,输入框被遮挡,分为两种情况: 客户端设置了windowSoftInputMode =& ...

  5. 手机软键盘弹起导致页面变形的一种解决方案

    最近用 uniapp(一种第三方 app 开发框架) 开发 app,其中一个页面有十几个 input 输入框,在点击 input 输入时,软键盘弹起,导致页面往上顶,底部的按钮也全部弹到页面上面去了, ...

  6. 解决Flutter键盘弹起导致与输入框有间距问题(Flutter键盘弹起Scaffold布局流程)解析

    一. 在项目中遇到了个如下问题: 当页面底部有个输入框,点击弹出键盘时:输入框与键盘之间有一段间距 通过排除,最后找到了问题根源所在:原因是使用了这个屏幕适配框架导致的.此框架通过直接修改Flutte ...

  7. 移动端键盘输入框把底部元素顶上去了_关于input调用移动端键盘的问题

    题记 ------觉得自己做得到和做不到,其实只在一念之间. 每天站在高楼上,看着地上的小蚂蚁,他们的头很大,腿很细.他们拿着苹果手机,他们穿着耐克阿迪,上班就要迟到了,他们很着急.最近发生了滴滴事件 ...

  8. 百度浏览器屏蔽H5固定在底部按钮之解决方案

    最近在做一个活动页的时候遇到一个奇怪的问题,活动页底部固定一个按钮,但是在百度浏览器打开时按钮一闪不见,而只有百度浏览器会这样. 查询资料发现,这是百度浏览器的广告屏蔽机制,会让这种固定定位在底部的元 ...

  9. Flutter 中键盘弹起时,Scaffold 发生了什么变化

    最近刚好有网友咨询一个问题,那就顺便借着这个问题给大家深入介绍下 Flutter 中键盘弹起时,Scaffold 的内部发生了什么变化,让大家更好理解 Flutter 中的输入键盘和 Scaffold ...

最新文章

  1. 如何在Win7电脑上增加新磁盘分区?
  2. 原创:机器学习代码练习(一、回归)
  3. docker Harbor 问题
  4. Android_(菜单)选项菜单
  5. java类型转换_Java类型转换
  6. 高级service之ipc ADIL用法
  7. 诺基亚贝尔完成5G毫米波NR-DC和200MHz载波带宽测试
  8. java用selenium库控制chrome
  9. 计算机中丢失inetcomm,模块inetcomm.dll已加载,但找不到入口点DllRegisterServer
  10. 关于翻译书籍版权的讨论
  11. Python技术公众号100天了
  12. OpenCV学习:OpenCV文件一览
  13. java 读取配置文件的几种方法
  14. 使用SQLyog创建MySQL数据库
  15. idea安装教程(傻瓜式操作、永久使用)
  16. java 基本数据类型的默认初始值
  17. js中对数组的增删方法:push(),pop(),unshift(),shift(),splice()的用法小结
  18. 微信小程序开发之——数据存储Storage
  19. 斯坦福大学(吴恩达) 机器学习课后习题详解 第三周 正则化
  20. rsa1024 公钥c语言程序,两种方式生成RSA 公钥私钥

热门文章

  1. oracle ogg checkpoint,OGG 11g Checkpoint 详解
  2. 电子称测试软件,GS/AJ系列电子秤测量自动记录系统
  3. 计算机系统安装要点,电脑重新装系统要注意哪些要点 重装系统时的六大事项...
  4. sql server2012 第一次访问慢_【共同学习】第1章 数据库和SQL (续)
  5. JSON.toJSONString()空字段不忽略
  6. BigDecimal除法,并保留小数后两位
  7. redis清空数据、查看数据量、查看占用内存命令
  8. Spring是如何注解的
  9. vim的简单使用及配置
  10. 创建一个优质可用的Hyper-V虚拟机模板