小程序自定义导航栏

一、pages.json 文件用来对 uni-app 进行全局配置,决定页面文件的路径、窗口样式、原生的导航栏、底部的原生tabbar,在pages.json 文件下选择需要自定义导航栏的文件路径下配置

  1.1、"navigationStyle": "custom"

 

二、在全局文件下定义全局的参数以及获取系统文件信息

  2.1、App.vue文件全局定义获取导航栏数据的参数

    statusBarHeight: 0, // 顶部状态栏高度
    headerBarHeight: 0, // 小程序headerBar高度
    menuButtonWidth: 0, // 小程序胶囊按钮宽度
    menuButtonHeight: 0, // 小程序胶囊按钮高度
    menuButtonRight: 0, // 小程序胶囊按钮右边距

  2.2、定义获取系統信息方法

    getSystemInfo() {

     uni.getSystemInfo ({
      success: (res) => {
         this.globalData.statusBarHeight = res.statusBarHeight
       let menuButtonInfo = uni.getMenuButtonBoundingClientRect()
                         this.globalData.headerBarHeight =  menuButtonInfo.bottom + menuButtonInfo.top - res.statusBarHeight

                         this.globalData.menuButtonWidth = menuButtonInfo.width
                         this.globalData.menuButtonHeight = menuButtonInfo.height
                         this.globalData.menuButtonRight = menuButtonInfo.right
                        }
                   })
                }

 

三、自定义一个胶囊组件【注:小程序自带胶囊按钮目前暂不支持修改/隐藏功能,自定义的胶囊组件是不能取代自带的胶囊按钮】

  3.1、定义参数获取全局导航栏的信息进行赋值
      

    注: 小程序headerBar高度 + 4 像素的原因是获取小程序headerBarop值是24,网上找了很多方法也没找到解决获取正确值的方法,正确的top是26,所以就只能写死用着先【如果有人知道原因的话,欢迎留言指教,谢谢】


   3.2、组件中运用

  

   

四、自定义一个导航栏内容组件【主要用于点击某项导航栏跳转到某模块具体的位置,拉动时背景颜色渐变】

         4.1、

 

posted @ 2020-03-21 17:54  赖粥粥  阅读(662)  评论(0编辑  收藏  举报