• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

微信小程序 自定义标题栏

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

微信小程序可以设置自定义标题栏,可以针对不同页面单独设置
1. 在页面文件 .json 文件中,设置如下属性,自定义导航栏 和 导航栏样式"navigationStyle": "custom","navigationBarTextStyle": "white",
  特别是第二个 navigationBarTextStyle 属性 可以将胶囊样式调整为透明效果

2. 设置自定义导航栏布局 样式 动效逻辑等

3. 划重点!!!导航栏中状态栏高度 导航栏高度 胶囊高度,需要得知这三个属性进行布局 + 兼容
  这里的尺寸都是 px 为单位的!
  3.1 状态栏高度
    状态栏指的是 显示手机的时间 电量 信号等信息的一块区域。参考如下图

    

  市场上使用的手机状态栏高度有多种,如刘海屏 全面屏 iOS特殊型号 和 安卓其他型号。
  获取状态栏高度的方法:调用微信 wx.getSystemInfoSync() API获取状态栏高度

  3.2 导航栏高度
    胶囊和功能按钮显示的区域。参考如下图片

    

    导航栏高度获取方法:安卓48px iOS 40px 这个是固定的。真机环境下,编辑器有误差

  3.3 胶囊高度
    各种机型测试的结果下都是 32px

 4. 滚动页面 改变标题栏不透明度
   此处建议使用 pages 的一个监听事件 onPageScroll 监听页面滚动。设置标题栏背景的不透明度 rgba
   这个需要注意的是合理使用 setData 不能每次滚动都设置数据,不然可能导致页面卡顿等影响

测试机型:
Andorid: 小米6 小米mix3 oppoR9s
iPhone: 7P x xs xr

相关代码:

  // 设置导航栏高度
  setNavigation() {
    // 获取设备系统信息,单位px
    const systemInfo = wx.getSystemInfoSync()
    // 状态栏高度
    const statusBarHeight = systemInfo.statusBarHeight
    // iOS真机 胶囊区高度 40
    let navigationHeight = 40
    // 胶囊区域高度,安卓48
    if (systemInfo.system.indexOf(\'Android\') !== -1) {
      navigationHeight = 48
    }
    // 设置
    this.setData({
      statusBarHeight: statusBarHeight,
      navigationHeight: navigationHeight,
      systemWidth: systemInfo.screenWidth
    })
    // 右上角胶囊,高度32px。每个设备都一致
  },
  // 监听页面滚动
  onPageScroll: function(e) {
    // 只在规定区域setData
    if (e.scrollTop < this.data.systemWidth) {
      const opacity = (e.scrollTop * 2) / this.data.systemWidth
      if (opacity >= 1) {
        if (this.data.statusBarOpacity !== 1) {
          this.setData({
            statusBarOpacity: opacity
          })
        }
      } else {
        this.setData({
          statusBarOpacity: opacity
        })
      }
    }
  }

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap