html52.com
我爱小程序-开发者交流社区

如何自定义顶部导航栏背景透明同时标题居中?

本人也在社区,百度所搜了一下,也参考了一下,没看太懂,复制下来也是一直报错

网友回复

曹孟良:

首先在你需要自定义导航栏的页面的json文件里加上这个:

  "navigationStyle": "custom"

然后用这个函数来获取导航栏高度

getHeight:function(){
    var that = this
      , sysinfo = wx.getSystemInfoSync()
      , statusHeight = sysinfo.statusBarHeight
      , windowWidth = wx.getSystemInfoSync().windowWidth
      , isiOS = sysinfo.system.indexOf('iOS') > -1
      //原生胶囊宽87pt,距离右侧7pt,共94pt=125px,back&home区域是65px,加上间隔10px,共计消耗200px,胶囊左边与标题框空10px
      //1pt=4/3 px
      //这里算出来和实际效果不太一样,减掉185px刚刚好,选择相信眼睛哈哈哈
      , titleWidth = windowWidth - 185
      , navHeight;
    if (!isiOS) {
      navHeight = 48;
    } else {
      navHeight = 44;
    }
    // 获取系统信息
    var systemInfo = wx.getSystemInfoSync();
    // 胶囊按钮位置信息
    var menuButtonInfo = wx.getMenuButtonBoundingClientRect();
    // 导航栏高度 = 状态栏到胶囊的间距(胶囊距上距离-状态栏高度) * 2 + 胶囊高度 + 状态栏高度
    that.globalData.statusHeight = statusHeight 
    that.globalData.navHeight = (menuButtonInfo.top - systemInfo.statusBarHeight) * 2 + menuButtonInfo.height
  },


上面代码里面的statusHeight,就是手机状态栏的高度(时间那一栏),navHeight就是原生导航栏的高度,你定义两个view在页面顶部,一个高度为statusHeight,另一个高度为navHeight,然后在navHeight里面写你想要实现的导航栏效果。

至于居中、透明这些问题,都可以自己写组件了,应该很好解决吧?


养乐多💍:

养乐多💍:我是这么写的

我是这么写的

微喵网络:

把你现有的代码发出来看看

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

真正的个人免签约支付接口

云免签H5支付