系统键盘收起后页面底部有留白问题处理

在输入框中输入完内容,当点击键盘上的完成按钮时,会发现页面底部会有一大段区域变成了白色的,高度就是原来弹起的键盘的高度,这时候如果将页面向下滑动下,会发现这块空白区域又会消失,页面也恢复了正常。

 

封装为 Vue 的自定义指令

import Vue from 'vue'
/*
* 自定义指令 v-reset-page,以解决 iOS 12 中键盘收起后页面底部有留白的问题
* */
Vue.directive('resetPage', {
  inserted: function (el) {
    // 监听键盘收起事件
    document.body.addEventListener('focusout', () => {
      if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) {
        // 软键盘收起的事件处理
        setTimeout(() => {
          const scrollHeight = document.documentElement.scrollTop || document.body.scrollTop || 0
          window.scrollTo(0, Math.max(scrollHeight - 1, 0))
        }, 100)
      }
    })
  }
})

定义好自定义指令后,在 main.js 中引入

import store from './store'

使用自定义指令v-reset-page 就解决问题了!

<x-input type="number" v-reset-page v-model="buyCount" />

 

 

问题解决来源于参考: https://blog.csdn.net/zgh0711/article/details/89562566

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值