微信表单页面键盘缩回后页面不回滚

我有一个微信页面,里面是表单,然后选择一个input后,键盘出来把页面顶到上方,但是在input失焦后键盘缩回,页面不会滚,导致一个 fixed 的弹出层出现bug,按钮点了无效,需要手动划下屏幕页面才会正常,请问各位大神有遇到过这种问题吗?怎么解决的?

图片描述
图片描述
图片描述
图片描述

阅读 2.9k
1 个回答

没人回答啊。。。查了很多文档没找到css当中的错误点在哪里,所以就参考别人的代码,使用js做强制回滚,哪位大神解决过这个问题希望分享下经验啊

var bfscrollboolean = false;//连续点击input时布尔值
var bfscrolltop = document.body.scrollTop;//获取软键盘唤起前浏览器滚动部分的高度
$("input[type=text], input[type=tel], input[type=number], input[type=password], textarea").focus(function(){
    //获取焦点时触发事件
    interval = setInterval(function(){//设置一个计时器,时间设置与软键盘弹出所需时间相近
    bfscrolltop = document.body.scrollTop;//获取焦点后将浏览器内所有内容高度赋给浏览器滚动部分高度
            },100)
    bfscrollboolean = true;
}).blur(function(){//设定输入框失去焦点时的事件
    clearInterval(interval);//清除计时器
    bfscrollboolean = false;
    setTimeout(function(){
        if(!bfscrollboolean){
            document.body.scrollTop = bfscrolltop; //将软键盘唤起前的浏览器滚动部分高度重新赋给改变后的高度
        }
    },100)
});
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题