Android 下面调起键盘后的样式兼容性问题
来源:互联网 发布:apache服务器 ubuntu 编辑:程序博客网 时间:2024/06/07 02:29
Android 上写 H5 页面,我们想实现的是一下图片的”完成”按钮相对底部进行 absolute 定位。
原本实现的效果如下:
但是,调起键盘后,这个“按钮”的位置变了,和计划的不一样。居然跑到上面来了~~。
现在觉得,嗯,还好,可以接受。那么问题来了,如果输入框很多,调起键盘变成这样了呢。。。这就尴尬了,所以,必须来解决这个问题了。
定位问题: 为什么 IOS 下面没问题,Android 下面就有问题了呢?原因是:在输入框获取焦点和失去焦点的时候,Android 下面的 body 的高度会变为减去键盘的高度,所以定位的时候相对 body 定位会出问题。但是,body 的滚动高度没变。(IOS)就是调起键盘的时候 body 的高度等于 body 的滚动高度。所以,我们模仿 IOS 的实现原理来解决这个问题。
首先,新建 keyboard.js 文件
/* eslint-disable *//** * Created by baidu on 16/9/13. * @file 为input元素强制绑定focus事件,修改body高度,来解键盘弹起定位bug */import Vue from 'vue'let keyboard = { bind: function (el) { // el是绑定视图区的父元素 Vue.nextTick(function () { var inputs = document.querySelectorAll('input', el); for (var i = 0; i < inputs.length; i++) { inputs[i].addEventListener('focus', keyboard.changeBodyHeight)//focus的时候改变body的高度 } }); }, unbind: function (el) { var inputs = document.querySelectorAll('input', el); for (var i = 0; i < inputs.length; i++) { inputs[i].removeEventListener('focus', keyboard.changeBodyHeight)//失去焦点的时候再次改变body的高度 } }, changeBodyHeight: function () { document.body.style.height = document.body.scrollHeight + 'px'; }, priority: 1000};export default keyboard;
在需要调用的时候添加该指令
结果:
至此,我们封装了调起键盘的指令,之后遇到的所有页面,只需要添加keyboard指令便可轻松解决~~
阅读全文
0 0
- Android 下面调起键盘后的样式兼容性问题
- android 一种键盘不能调起的解决方法
- android sdk升级到4.4后的兼容性问题
- becomeFirstResponder无法调起键盘
- 某一种情况键盘不能调起的解决方法
- css样式兼容性问题的处理办法
- Android 系统源码修改键盘的默认主题样式
- Raphael.js image 在ie8下面的兼容性问题
- 关于android DatePicker 样式和them起冲突的一些做法
- android 起的名字
- curse下面的键盘模式输入
- 移动web页面调起手机键盘各种功能的方法
- IE6 下面CSS样式覆盖的BUG
- css在ios和android设备上的兼容性问题(移动设备不同内核浏览器样式兼容性)笔记
- css在ios和android设备上的兼容性问题(移动设备不同内核浏览器样式兼容性)笔记
- 解决Android键盘弹出后,背景图挤压变形的问题
- 各浏览器CSS样式兼容性问题的一些解决方法
- 关于ActionBar 的V7包样式修改兼容性问题
- 19.软件生命周期(1)
- ng2-webstorm-snippets
- HttpServletRequestWrapper和jsp:param之间的问题及XSS防御
- LintCode-----17.带重复元素的子集
- mongodb实现类似sql中distinct的效果
- Android 下面调起键盘后的样式兼容性问题
- C++ Socket(六)
- OGG Configuring DDL Support
- 算法笔记:编辑距离
- 正则表达式获取url参数
- 用map对list进行分组
- JSP的3个编译指令、7个动作指令、9个内置对象
- 弹出ALV的几种方法(ALV POPUP)
- ios 内购