• android->按钮底部定位上移


    写在前面:以前的自己,可以专心致志的做事情,现在的自己,每次投入学习就像热锅上的蚂蚁,沸腾着。改变状态,从一个小博客开始。

    前面一节讲了ios遇到的坑,本周自己又一次遇到了安卓的坑 

    原生和vue上的解决方式

    1.安卓坑之软键盘弹起来 就不是你的背景图了哦~

     实现的功能为一个表单,如下图所示 ,

    表单的白色框是填充整个的内部的,就是手机屏幕不管多大,白色的框都必须给我撑开//父盒子

    .bank-list-form {  
        min-height: 100%;
        height: 100%;
        width: 750/@rem;
        background: url("xxx.png") ;
        background-size: 750/@rem cover;  
    //子盒子
    .bank-wrapper { width: 690/@rem; min-height: 100%; //和父盒子高度保持一致 且撑满整个屏幕
    }
    }

    坑点1: 整个页面的背景是一个图片,当软键盘弹起来时,背景图会被压缩变形,效果图就不展示了,更改以此方式,设置背景图的一个背景高度

           温馨提示1:对于这种大图片作为背景,一定要no-repeat 不然 会有大屏的手机下面的部分显示白边

    background-size: 750/@rem cover;  

    cover 覆盖整个页面高度 而设置宽度只要是为了防止页面高度变化时,向两个拉开
    坑点2:页面按钮绝对定位到底部时,软键盘弹起来导致按钮跟着上来
    正常的写法:
        .bank-wrapper {
             690/@rem;  
            min-height: 100%;
            position: relative;
    
            .bottom-fixed{
                position: absolute;
                bottom: 40/@rem;  
                 630/@rem; 
            }
    }

     父元素相对定位,自元素绝对定位就可以了,但是在安卓中,会发现,软键盘弹起来,按钮就会上去,导致页面的样式错乱,在小屏幕的浏览器中也会出现这种情况,

    产生的原因分析:由于页面内部的白色输入框部分的高度是依赖于整体的高度,而整体的高度为100%,导致内部的高度也为100%,高度不够用,底部相对定位的按钮自然就会定位到一个和输入框表单重叠的位置。

     先解决重叠的问题:按钮始终在输入框表单的下部分,设置白色表单框的下部分padding-bottom>按钮的高度,这样高度是自然够了,在小屏幕的手机中,立即申请按钮也不会覆盖表单框了。

    继续相连问题,按钮不会重叠了,但是软键盘弹起来,整个页面的height就会变小,而会导致页面变形,

      var windheight = $(window).height();  //获取页面变形前高度 
          $(window).resize(function(){
            var docheight = $(window).height();
            if(docheight < windheight){  
                $("body").css("height",windheight); //当软键盘弹起来的时候自动设置页面的高度为原高度,这样就好了
            }else{   
                $("body").css("height","100%"); //软键盘落下去回到原来的高度
            }           
          });
    

      在整个问题解决中,注意点有两个:定位在底部的按钮和背景的图片。

    2.vue中如何解决

     .commpn-apply {
        background: url("xxx") no-repeat;
        background-size: 100% 482px;
        padding-left: 30px;
        padding-right: 30px;
        height: 100vh; 
        box-sizing: border-box;
        display: flex;
        flex-direction: column;
    .son{
    height:100%
       }    
    }

     解决方式: 媒体查询方法,页面变化时,给盒子高度

      @media (min- 320px) {
        .commpn-apply {
          min-height: 568px;
          height: 100vh;
        }
      }
    
      @media (min- 375px) {
        .commpn-apply {
          min-height: 667px;
          height: 100vh;
        }
      }
    

      

     



  • 相关阅读:
    Leetcode: Longest Increasing Subsequence
    Leetcode: Bulls and Cows
    Leetcode: Serialize and Deserialize Binary Tree
    undefined reference to symbol '_ZNK11GenICam_3_016GenericException17GetSourceFileNameEv'
    ranlib 作用
    live555运行时报错:StreamParser internal error ( 86451 + 64000 > 150000)
    qt 免注册下载
    modsign: could't get uefi db list
    ubuntu安装 opencv-3.4.3
    xl2tpd[26104]: Maximum retries exceeded for tunnel 33925. Closing
  • 原文地址:https://www.cnblogs.com/mfyngu/p/11708307.html
Copyright © 2020-2023  润新知