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

2019-05-29  本文已影响0人  静默思想

如果你的小程序页面按钮有用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;

}

上一篇下一篇

猜你喜欢

热点阅读