zoukankan      html  css  js  c++  java
  • 小程序中底部栏高度适配

    最近接了几个小程序,在开发过程中遇到了比较常见的兼容适配问题,特此记录下,便于下次开发避坑;

    不同机型的底部栏高度是不同的,iphoneX和XR这两个比较特殊些,一般当前设备的具体信息 可通过  wx.getSystemInfoSync() 获取到:

     该对象中model为设备机型,可用来判断当前设备的具体型号;

    今天要说的是设备底部的高度该怎么获取才准确,也看了网上很多写法,都不太符合需求,

     去结算的这一栏高度为96rpx,默认是固定定位距离底部98rpx,在真机中并不好使,会出现上浮或者下沉的现象,正确操作应为定位的bottom动态计算才行,一开始用的是

    statusBarHeight这个字段来获取,发现还是不对,正确思路应为  通过  screenHeight  - safeArea.bottom ,此时得到的bar高度为px,需要通过 750 / screenWidth 将px换算为rpx,然后加上 去结算这一块高度96,这样是正确的,iphoneX及XR中,由于底部栏一般约为68rpx, 所以需要在刚才基础上单独减去20rpx,具体代码如下:
    <view class="fixed-bar"style="bottom:{{ isIpx ? barHeight - 20 : barHeight }}rpx;"></view>
    .fixed-bar {
      position: fixed;
      left: 0;
      right: 0;
      bottom: 98rpx; //此为默认值。可不写
      background: #fff;
      z-index: 100;
    }
    //app.js中   
    var systemInfo = wx.getStorageSync("community");    
    var screenH = systemInfo.screenHeight;

    var model = systemInfo.model;
      //判断是否是iphoneX 
    this.globalData.isIpx = model.indexOf("iPhone X") > -1 || model.indexOf("unknown<iPhone") > -1;
    var barHeight = screenH - systemInfo.safeArea.bottom; //此时获取的bar高度单位为px this.globalData.barHeight = barHeight * (750 /
    systemInfo.screenWidth ); //px转化为rpx

    //当前.js
      onLoad: function() {
        this.setData({
          barHeight: app.globalData.barHeight + 96
        })
      }

    如有问题,还请及时留言指正,共同学习共同进步;

  • 相关阅读:
    ps -aux --sort -rss |head 列出进程拿物理内存占用排序 使用ps aux 查看系统进程时,第六列即 RSS列显示的就是进程使用的物理内存。
    13 memcache服务检查
    shell 颜色
    expr判断整数是相加的值,返回命令的返回值$? 是0,但是少数情况是1,例如1 + -1 ,$? 的结果是1 ,判断要大于1最准确
    ZABBIX监控原理
    ansible分发密钥
    再来一个expect脚本
    11:菜单自动化软件部署经典案例
    19:批量检查多个网站地址是否正常
    数组迭代
  • 原文地址:https://www.cnblogs.com/fmixue/p/14644861.html
Copyright © 2011-2022 走看看