input输入框获取焦点后,底部固定定位的按钮顶起问题

2019-11-15  本文已影响0人  紫气楠楠

问题描述

问题:手机H5页面当input输入框获取焦点时,软键盘会弹起,这时:IOS底部固定定位的按钮不会随着键盘弹起而弹起;而安卓底部固定定位的按钮会跟随软键盘弹起而顶起,从而遮挡一部分视图

解决方法一、监听window的resize事件,控制显示隐藏

此方法只对安卓有用,iOS没有监听window的resize事件(iOS的话还是用flex布局比较好)

// 获取视图原始高度
let screenHeight = document.body.offsetHeight   
// 为window绑定resize事件
window.onresize = function () {
      let changeHeight = document.body.offsetHeight
      if (changeHeight < screenHeight) {
        // 隐藏被弹起的固定定位
      } else {
        // 显示
      }
    }

解决方法二、flex布局

将屏幕分为上下两部分,主体为一部分,底部一部分,主体部分设置为flex:1,overflow: scroll;内容在主体内滑动,底部固定不动

//样式
html,body {
        height: 100%;
        width: 100%;
    }
.container {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
}

//需要滑动的主体内容设置为flex:1;overflow: scroll,这样当内容超出时只会在主体内滑动,而不会被底部固定的部分影响
.main {
        flex:1;
        width: 100%;
        background-color:pink;
        overflow: scroll;
    }

//需要固定不动的部分设置固定的高,
.foot {
    height: 200px;
    width: 100%;
    background-color: #000;
}

//结构
<div class="container">
    <div class="main">
        <p>dsadasdsadsadsadasdsadasdsadasdsaddsadasdsadsadsadasdsadasdsadasdsad</p>
    </div>
    <div class="foot">
        
    </div>
</div>
上一篇下一篇

猜你喜欢

热点阅读