解决vue-cli单页面手机应用input点击手机端虚拟键盘弹出盖住input问题


Posted in Javascript onAugust 25, 2018

在用vue-cli脚手架搭建手机H5页面应用的时候,其中一页中部有input,底部有position:absolute;bottom:0的元素,

当点击input框时在安卓手机上出现了:

1 虚拟键盘弹出盖住input

2 底部定位的元素被挤上来

网络上很多关于body设定宽高以及scrolltop的方法都不管用,因为这里是路由页面,根据网上的思路,吊起输入键盘的时候页面的高度是变化的,监听window.onresize,判断是否吊起键盘,然后设定底部模块的隐藏和显示,整个块元素的margintop就可以实现了。

代码如下

mounted () {
 this.clientHeight = document.documentElement.clientHeight;
 const that = this;
 // 安卓手机键盘吊起挡住输入框

 window.onresize = function() {

  if(document.documentElement.clientHeight < that.clientHeight) {
  // scrollVal为负值
  let scrollVal = document.documentElement.clientHeight-that.clientHeight;
  $(".alert-main").css("marginTop",scrollVal);
  $(".bottom-create").hide();
  }else {
  $(".alert-main").css("marginTop",0);
  $(".bottom-create").show();
  }
  
 };
 },

今天这个bug 遇到了新问题,同样的华为手机上,当从别的路由吊起输入键盘的时候回到当前路由,

document.documentElement.clientHeight 就变成了减去输入键盘高度的值,

这时需要在页面第一次加载将document.documentElement.clientHeight记录到store中,store中的值不会因为页面重新渲染而改变。

以上这篇解决vue-cli单页面手机应用input点击手机端虚拟键盘弹出盖住input问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js 无提示关闭浏览器页面的代码
Mar 09 Javascript
js取模(求余数)隔行变色
May 15 Javascript
javascript检查浏览器是否已经启用XX功能
Jul 10 Javascript
jQuery 中ajax异步调用的四种方式
Jun 28 Javascript
Bootstrap使用基础教程详解
Sep 05 Javascript
简单三步实现报表页面集成天气
Dec 15 Javascript
Bootstrap CSS组件之大屏幕展播
Dec 17 Javascript
jQuery查找dom的几种方法效率详解
May 17 jQuery
Vue中父组件向子组件通信的方法
Jul 11 Javascript
7个好用的JavaScript技巧分享(译)
May 07 Javascript
JS前端知识点总结之页面加载事件,数组操作,DOM节点操作,循环和分支
Jul 04 Javascript
微信小程序实现左侧滑动导航栏
Apr 08 Javascript
对vue 键盘回车事件的实例讲解
Aug 25 #Javascript
vue点击input弹出带搜索键盘并监听该元素的方法
Aug 25 #Javascript
vue 自定义指令自动获取文本框焦点的方法
Aug 25 #Javascript
vue.js项目 el-input 组件 监听回车键实现搜索功能示例
Aug 25 #Javascript
vue+mousemove实现鼠标拖动功能(拖动过快失效问题解决方法)
Aug 24 #Javascript
对vue2.0中.vue文件页面跳转之.$router.push的用法详解
Aug 24 #Javascript
微信小程序Getuserinfo解决方案图解
Aug 24 #Javascript
You might like
Linux下进行MYSQL编程时插入中文乱码的解决方案
2007/03/15 PHP
PHP脚本中include文件出错解决方法
2008/11/20 PHP
不重新编译PHP为php增加openssl模块的方法
2011/06/14 PHP
php面向对象中的魔术方法中文说明
2014/03/04 PHP
PHP 获取 ping 时间的实现方法
2017/09/29 PHP
laravel 执行迁移回滚示例
2019/10/23 PHP
js数组Array sort方法使用深入分析
2013/02/21 Javascript
关于javascript event flow 的一个bug详解
2013/09/17 Javascript
简单常用的幻灯片播放实现代码
2013/09/25 Javascript
让html页面不缓存js的实现方法
2014/10/31 Javascript
学习JavaScript设计模式之享元模式
2016/01/18 Javascript
bootstrap实现图片自动轮播
2016/12/21 Javascript
js实现开启密码大写提示
2016/12/21 Javascript
jQuery封装placeholder效果实现方法,让低版本浏览器支持该效果
2017/07/08 jQuery
js禁止表单重复提交
2017/08/29 Javascript
值得收藏的vuejs安装教程
2017/11/21 Javascript
详解如何在angular2中获取节点
2017/11/23 Javascript
利用js给datalist或select动态添加option选项的方法
2018/01/25 Javascript
element ui 对话框el-dialog关闭事件详解
2018/02/26 Javascript
[04:48]DOTA2亚洲邀请赛林书豪为VGJ加油
2017/04/01 DOTA
python原始套接字编程示例分享
2014/02/21 Python
Python高级应用实例对比:高效计算大文件中的最长行的长度
2014/06/08 Python
python调用百度语音识别实现大音频文件语音识别功能
2018/08/30 Python
Python多线程threading模块用法实例分析
2019/05/22 Python
django 使用 PIL 压缩图片的例子
2019/08/16 Python
Python通过Manager方式实现多个无关联进程共享数据的实现
2019/11/07 Python
一款基于css3麻将筛子3D翻转特效的实例教程
2014/12/31 HTML / CSS
纽约21世纪百货官网:Century 21
2016/08/27 全球购物
公司活动总结范文
2014/07/01 职场文书
投资意向书
2014/07/30 职场文书
一份没有按时交货失信于客户的检讨书
2014/09/19 职场文书
信访维稳工作汇报
2014/10/27 职场文书
党员年终个人总结
2015/02/14 职场文书
筑梦中国心得体会
2016/01/18 职场文书
PyQt5爬取12306车票信息程序的实现
2021/05/14 Python
《现实主义勇者的王国再建记》第三弹OST全曲试听片段公开
2022/04/04 日漫