[ Vue ] 解决移动端开发中由于虚拟键盘弹出导致fixed布局失效的问题

1. 背景:使用Vue.js做移动端App开发,使用了Vant框架,编辑器WebStrom,真机测试为MI PAD 4。

2. 问题:

如图所示:"技术支持...''使用了fixed布局,但是在点击输入框进行输入时,fixed布局随着键盘弹出被移动位置。

图1图2

3. 产生原因:查阅了一些资料后发现,该情况在安卓机中存在,IOS系统不会出现该问题,原因可能与键盘弹出的机制有关系,更详细的原因未深究。

4. 解决思路:当键盘弹出时,设置底部Fixed布局元素不显示,即v-show='false'

5. 解决方法:

主要代码:

 data() {
   return {
     ...
     docmHeight: document.documentElement.clientHeight, // 默认屏幕可视高度
     showHeight: 0, //body元素高度
     isShow: true, //显示或隐藏
   }
 },
 mounted() {
   // window.onresize监听页面高度的变化
   window.onresize = () => {
   return(()=>{
     this.showHeight = document.body.clientHeight
     })()
   }
 },
 watch: {
   showHeight() {
     if(this.docmHeight > this.showHeight){
       this.isShow = false
     }else{
       this.isShow = true
     }
   }
 }

底部元素代码:

<div class="bottom" v-show="isShow">技术支持:中国矿业大学环测学院</div>

样式:

.bottom {
    position: fixed;
    left: 0px;
    right: 0px;
    bottom: 10px;

    text-align: center;
    font-size: 14px;
  }

记于2020.5.18

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值