js 移动端解决input focus后键盘弹出,高度被挤压页面边形的问题

本文介绍了一个在移动端设备,特别是华为平板上,使用百分比布局时遇到的输入框聚焦弹出键盘导致页面压缩变形的解决方法。通过监听input框的焦点事件和窗口尺寸变化,动态调整body高度以保持页面样式正常。同时提供了失去焦点时的处理代码,确保页面布局在输入框失去焦点后能正确恢复。
摘要由CSDN通过智能技术生成

页面样式是采用的百分比布局,宽高都是百分百,测试的移动端设备是华为平板,当点击input框弹起键盘,页面样式高度会被压缩挤压变形,解决代码:

    //解决弹出键盘页面高度变化bug

    var viewWidth = window.innerWidth; //获取可视区域宽度
    var viewHeight = window.innerHeight; //获取可视区域高度
    if (viewWidth > viewHeight) {
        horizontalScreen = true; // 横屏 判断横竖屏,需要的时候用
    } else {
        horizontalScreen = false; // 竖屏
    }
    $("input").focus(function () { // 监听获取焦点事件
        $("body").css("height", viewHeight); //键盘弹起的时候把body高度设置可视高度
    })

浏览器初始化进来是竖屏,旋转屏幕至横屏以后,点input框的时候还会变形,所以我监听了浏览器窗口大小变化,可视高度重新赋值。

window.addEventListener('resize', function () {
    // 变化后需要做的事
    console.log("bianhuale==============");
    viewHeight = window.innerHeight; //获取可视区域高度
    viewWidth = window.innerWidth; //获取可视区域高度
})
使.win-data下的所有input失去焦点: $(".win-data input").blur();
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值