小程序全面屏底部按钮适配

如果你的小程序页面按钮有用fixed定位到底部的话,那你一定会遇到兼容全面屏的坑(与底部横条重叠)。查了下文档,发现能用的就只有一个api:

wx.getSystemInfoSync()wx.getSystemInfoSync()


封装一个全局的函数

代码如下:

app.js

onLaunch: function (e) {

    // 判断设备是否为全面屏

    this.checkFullSucreen()

  },

globalData: {

    isFullSucreen: false, // 当前设备是否为 FullSucreen

  },

checkFullSucreen: function () {

    const self = this

    wx.getSystemInfo({

      success: function (res) {

        console.log(res)

        // 根据 屏幕高度 进行判断

        if (res.screenHeight - res.windowHeight - res.statusBarHeight - 32 > 72) {

          self.globalData.isFullSucreen = true

        }


      }

    })

  },

由华为M20  M9和 iPhoneX XR  (res.statusBarHeight)的平均值得出: 

32(31.8四舍五入)则是小程序顶部title区域高度

由华为M20  M9和 iPhoneX XR  (res.screenHeight - res.windowHeight - res.statusBarHeight - 32 )的平均值得出: 

76(75.6四舍五入)则是判断微信对应全面屏的适配tab底部高度

在所需页面调用

data{

isFullSucreen: app.globalData.isFullSucreen ? true : false //判断机型

}


<view class="bottom-btn {{isFullSucreen?'fix-Full-button':''}}"></view>


.bottom-btn {

  position: fixed;

  left: 0;

  bottom: 0;

  z-index: 1000;

  width: 750rpx;

  height: 100rpx;

  display: flex;

  background: #fff;

}

.fix-Full-button {

    bottom:68rpx!important;

}

.fix-Full-button::after {

    content: ' ';

    position: fixed;

    bottom: 0!important;

    height: 68rpx!important;

    width: 100%;

    background: #fff;

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容