问题描述:

Vue开发中,当我们相对于父视图的底部布局子控件时,需要用position:fixed,如果页面内容不是很长,没有超出屏幕范围,那就还好,没有问题;一旦超出屏幕范围,当你点击输入框,弹出键盘时,底部固定定位的子控件就会被顶起来。
这个问题在iOS端不会出现,在安卓端会出现。

解决办法:

<div class="footer"
     v-show="hidshow||!isAndroid">
     ...
</div>
data () {
  return {
    docmHeight: '0', //初始状态可视区高度
    showHeight: '0', //实时可视区高度
    hidshow: true, //是否显示底部
    isAndroid: false, //是否为安卓系统
  };
},
created () {
  //仅针对安卓做处理,不然的话ios会出现新的问题
  this.isAndroid = this.$isAndroid()
  this.docmHeight = document.documentElement.clientHeight
},
mounted () {
  window.onresize = () => {
    return (() => {
      this.showHeight = document.body.clientHeight
      if (this.docmHeight > this.showHeight) {
        this.hidshow = false
      } else {
        this.hidshow = true
      }
    })()
  }
},
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐