安卓手机软键盘弹起的问题

现如今很多API对于安卓系统,iOS系统有些会兼容,有些不兼容。就拿软键盘弹起的问题来说吧,如果一个系统上面有一个输入框,底部有个按钮(前提按钮用了position:fixed),当我用安卓手机点击输入框的时候,底部的按钮很往上顶;而iOS系统的手机则不会这样。分析了一下,安卓手机把软键盘以上的视为可视窗口,iOS系统的手机可视窗口还是原来的。解决方案如下:

<div class="btn" v-if="isShow">
      <span @click="submitFn()">提交</span>
</div>

我给这个按钮一个显示隐藏,当安卓手机原来的可视窗口高度大于软键盘弹起的可视窗口高度,我就让这个按钮隐藏起来,否则的话就显示。

在data中定义两个变量:

data() {
    return {
        isShow: true,
        documentHeight: document.documentElement.clientHeight,  // 默认屏幕高度
    }
}

在mounted里面调用 window.onresize()这个方法,如下:

mounted() {
    window.onresize = () => {
      const that = this;
      if (that.documentHeight > document.documentElement.clientHeight) {
        // 如果默认屏幕高度大于当前的屏幕高度
        that.isShow = false;
      } else {
        that.isShow = true;
      }
    };
  },

然后在注销window.onresize()这个方法

beforeDestroy() {
    window.onresize = null;
},

这样就解决了我们的问题---安卓手机软键盘弹起影响布局。

顺带说一句,有些样式用了"vh"的话,安卓手机软键盘弹起,这些样式也会造成影响。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值