我的是安卓手机的微信公众号存在这个问题,当input获得焦点,键盘弹起时,固定元素失效元素会向上浮动,
为了区分安卓系统和IOS系统,我先读取设备的系统;
var u = navigator.userAgent;
//Android终端
var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1;
//iOS终端
var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);
使用window.onresize监听窗口大小是否发生变化,如果窗口发生变化,键盘弹起了,并且是安卓设备,input也获取焦点了,那么就将元素定位到一个合适的位置,否则就回到原位置,如下代码:
var originalHeight=document.documentElement.clientHeight ||document.body.clientHeight;
window.onresize=function(){
//键盘弹起与隐藏都会引起窗口的高度发生变化
var resizeHeight=document.documentElement.clientHeight||document.body.clientHeight;
if((resizeHeight)<(originalHeight)){
//当软键盘弹起,在此处操作
if(isAndroid && $('.invoice_apply input[type="