微信小程序开发 --1.1表头导航栏

原生导航栏

json文件中可以使用以下语法来控制原生导航栏

"usingComponents": {"navBar": "/components/navBar/navBar"},//引入组件

"navigationBarTitleText": "" ,//设置导航栏标题

"navigationBarBackgroundColor" : "#A6AEDF",//设置导航栏背景颜色

"navigationBarTextStyle":"white",//设置导航栏标题颜色(只能设置黑或白两种)

注意:用逗号分隔,但是最后一行的末尾不能加逗号。

原生导航栏的限制:

1.能改动的属性有限

2.原生导航栏只会出现返回按钮和当用户打开的小程序最底层页面是非首页时,默认展示的“返回首页”按钮

自定义导航栏

.json文件中使用以下语句设置自定义导航栏。

"navigationStyle": "custom"

1.状态栏

状态栏就是手机最顶部显示时间信号电量等信息的区域。

 2.顶部导航栏

顶部导航栏(蓝)的高度=状态栏高度(红)+(胶囊按钮top值-状态栏高度(红))*2+胶囊按钮高度。

 效果

 1.app.json添加全局组件
"usingComponents": {
    "navBar": "/components/navBar/navBar"
},
2、app.js中 onLaunch方法中 添加该段代码
        const { statusBarHeight, platform } = wx.getSystemInfoSync()
        const { top, height } = wx.getMenuButtonBoundingClientRect()
        // 状态栏高度
        wx.setStorageSync('statusBarHeight', statusBarHeight)
        // 胶囊按钮高度 一般是32 如果获取不到就使用32
        wx.setStorageSync('menuButtonHeight', height ? height : 32)
        // 判断胶囊按钮信息是否成功获取
        if (top && top !== 0 && height && height !== 0) {
            const navigationBarHeight = (top - statusBarHeight) * 2 + height
            // 导航栏高度
            wx.setStorageSync('navigationBarTop', (top - statusBarHeight)*2)
            wx.setStorageSync('navigationBarHeight', navigationBarHeight)
        } else {
            wx.setStorageSync(
            'navigationBarHeight',
            platform === 'android' ? 48 : 40
            )
        }
3、对应页面

wxml

//导航栏
<view class="flex" style="z-index:10;position:fixed;top:0;width:100%;height:{{navigationBarAndStatusBarHeight}}px;background-color:#A5AEDF;color:#fff;">
    <text style="position:absolute;margin-left:312rpx;font-size:30rpx;letter-spacing:2rpx;height:auto;bottom:{{navigationBarTop}}px;">精彩活动</text>
</view>
//主体内容
<view style="padding-top:{{navigationBarAndStatusBarHeight}}px;min-height:{{mainPageHeight}}px;">
</view>

js

getDeviceInfo(){
        var windowInfo =  wx.getWindowInfo()//基础库大于2.20.1才能使用
        var windowHeight = windowInfo['windowHeight']//获取屏幕高度   
        var windowWidth =  windowInfo['windowWidth'] //获取屏幕宽度
        var rpxRate =   windowWidth / 750                  
        var upperZoneHeightRpx = wx.getStorageSync('statusBarHeight')+wx.getStorageSync('navigationBarHeight')    
        var mainPageHeight =   windowHeight -  (upperZoneHeightRpx  * rpxRate)//计算除去导航栏的屏幕高度   
        this.setData({
            windowHeight:windowHeight,
            mainPageHeight:mainPageHeight,
            navigationBarHeight:wx.getStorageSync('navigationBarHeight'),
            navigationBarTop:wx.getStorageSync('navigationBarTop'),
         navigationBarAndStatusBarHeight:wx.getStorageSync('statusBarHeight')+wx.getStorageSync('navigationBarHeight'),//状态栏高度
            menuButtonHeight:wx.getStorageSync('menuButtonHeight')
        })     
} ,

改变胶囊体颜色

js

wx.setNavigationBarColor({
      frontColor: '#fff',
      backgroundColor: '#000000',
    });

注意:frontColorbackgroundColor两个都需要设置

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值