移动端页面input输入框被键盘遮挡问题

Posted tang丶有年

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了移动端页面input输入框被键盘遮挡问题相关的知识,希望对你有一定的参考价值。

<body class="layout-fixed">
    <!-- fixed定位的头部 -->
    <header>
        
    </header>
    
    <!-- 可以滚动的区域 -->
    <main>
        <!-- 内容在这里... -->
    </main>
    
    <!-- fixed定位的底部 -->
    <footer>
        <input type="text" placeholder="Footer..."/>
        <button class="submit">提交</button>
    </footer>
</body>v
header, footer, main {
    display: block;
}
header {
    position: fixed;
    height: 50px;
    left: 0;
    right: 0;
    top: 0;
}
footer {
    position: fixed;
    height: 34px;
    left: 0;
    right: 0;
    bottom: 0;
}
main {
    margin-top: 50px;
    margin-bottom: 34px;
    height: 2000px
}

下面这个样子。

键盘唤起下面这样

是为什么呢?:  软键盘唤起后,页面的 fixed 元素将失效(即无法浮动,也可理解为成了 absolute 定位)

解决方案: 将原 body 滚动的区域域移到 main 内部

header, footer, main {
    display: block;
}
header {
    position: fixed;
    height: 50px;
    left: 0;
    right: 0;
    top: 0;
}
footer {
    position: fixed;
    height: 34px;
    left: 0;
    right: 0;
    bottom: 0;
}
main {
    /* main绝对定位,进行内部滚动 */
    position: absolute;
    top: 50px;
    bottom: 34px;
    /* 使之可以滚动 */
    overflow-y: scroll;
  /* 增加该属性,可以增加弹性 */
  -webkit-overflow-scrolling: touch; } main .content { height: 2000px;
}

 

 

h5底部输入框被键盘遮挡问题

var oHeight = $(document).height(); //浏览器当前的高度   
   $(window).resize(function(){
 
        if($(document).height() < oHeight){
         
        $("#footer").css("position","static");
    }else{
         
        $("#footer").css("position","absolute");
    }
        
   });

 

js解决软键盘遮挡输入框问题

链接 http://blog.csdn.net/u011500781/article/details/53926425

以上是关于移动端页面input输入框被键盘遮挡问题的主要内容,如果未能解决你的问题,请参考以下文章

Android WebView加载页面的输入框被软键盘遮挡的问题

安卓手机底部输入框被软键盘遮挡的坑

移动端中 H5输入框在弹起键盘后被遮挡

移动端键盘顶起遮挡输入框

Vue h5项目解决键盘遮挡输入框问题

flutter去除Appbar的阴影、键盘遮挡下部输入框