• 移动端键盘弹起导致底部按钮上浮解决方案


    问题描述:移动端页面输入框聚焦伴随着键盘弹起,底部icon浮到键盘上方,导致样式不友好

    解决思路:在键盘弹起时,不让原本固定在底部的icon自动浮起。监听屏幕的实时高度,控制底部按钮的显示与否,从而达到按钮固定在底部的效果。

    解决方案(本例是在vue框架下实现的解决方案代码):

    html:

    <div class="login-content-footer" v-if="heightChange">
       <img src="../../assets/images/login-wxLogin.png" alt="" class="login-content-footer-wxLogin" @click="wxLogin" v-show="WxFlag">
       <img src="../../assets/images/personal-footer.png" class="login-content-footer-img">
    </div>
    

    data部分:

    data () {
       return {
          heightChange: true,
          docmHeight: document.documentElement.clientHeight,  //默认屏幕高度
          showHeight: document.documentElement.clientHeight,   //实时屏幕高度
      }
    }    
    

    监听屏幕实时高度:  

    watch:{
        showHeight() {
            if (this.docmHeight > this.showHeight) {
              this.heightChange = false;
            } else {
              this.heightChange = true;
            }
          },
    }
    

    mounted周期:

    mounted() {
          // window.onresize监听页面高度的变化
          window.onresize = () => (() => {
            this.showHeight = document.body.clientHeight;
          })();
    }, 

    结果:

    Android手机键盘弹起时实时屏幕高度会改变,但是苹果手机无论是默认输入法还是安装的其他输入法,键盘弹出的高度不会改变,但是庆幸的是大部分ios已经支持了fixed属性

    还发现一个小的bug就是苹果手机点击输入框时偶尔会闪现一个icon,通过给父元素加入position:relative和足够的padding-bottom解决了,之后我发现可以用position:absolute定位父元素给position:relative和足够的padding-bottom能达到同样的效果^_^

    
    
  • 相关阅读:
    php魔术方法
    适用所有手机号码的正则表达式
    js按回车事件提交
    php 顺序线性表
    PLSQL连接远程oracle配置
    Jmeter 接口测试 —— 3种参数化方式
    Jmeter 接口测试 —— 3种采样器的使用
    【LICEcap】怎样用LICEcap录制屏幕及GIF图片
    WPS标题自动编号
    UT、IT、ST、UAT
  • 原文地址:https://www.cnblogs.com/hongsusu/p/10060152.html
Copyright © 2020-2023  润新知