一、公共参数设置
app.js
//获取当前设备状态栏高度
App({
onLaunch: function() {
wx.getSystemInfo({
success: res => {
this.statusBarHeight = res.statusBarHeight
}
})
},
statusBarHeight: 0,
globalData: {
userInfo: null
}
})
app.json
"window": {
"navigationStyle": "custom"
},
app.wxss
/* 自定义标题栏 */
.gw_navbarTop {
width: 100vw;
background-color: #fff;
position: fixed;
z-index: 4;
}
.gw_navbarTop .gw_title-container {
height: 44px;
display: flex;
align-items: center;
position: relative;
}
.gw_navbarTop .gw_capsule {
padding: 0 5px;
/* margin-left: 10px; */
margin-left: 30rpx;
height: 32px;
border-radius: 16px;
display: flex;
align-items: center;
border: 1px solid rgba(0, 0, 0, 0.08);
}
.gw_navbarTop .gw_capsule>view {
width: 32px;
height: 75%;
position: relative;
}
.gw_navbarTop .gw_capsule>view:nth-child(2) {
height: 75% !important;
border-left: 1px solid rgba(0, 0, 0, 0.08);
}
.gw_navbarTop .gw_capsule image {
width: 100%;
height: 100%;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
}
.gw_navbarTop_baoCunBtn {
height: 100% !important;
margin: 0 auto;
font-size: 16px;
text-align: center;
line-height: 22px;
}
.gw_navbarTop_baoCunBtn_text {
padding-left: 6px;
}
.gw_navbarTop .gw_navbarTop_title {
position: absolute;
left: 104px;
right: 104px;
font-size: 18px;
font-weight: bold;
text-align: center;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
二、当前使用页面配置
index.js
const app = getApp()
const navigationBarHeight = (getApp().statusBarHeight + 44) + 'px'
Page({
data: {
navigationBarHeight: (app.statusBarHeight + 44) + 'px',
gw_navbarTop: [{
navigationBarTitle: '系统首页', //页面标题,为空时可在页面加载时自定义,默认居中超出隐藏
statusBarHeight: app.statusBarHeight + 'px',
navigationBarHeight: (app.statusBarHeight + 44) + 'px',
onLeft: 'onQR', //左-图标点击事件
onRight: 'onQR', //右-图标点击事件,单个图标按钮时可删除此项
alone: true, //是否单个按钮,true/是---false/否
btnText: '', //右文字按钮,此项不可删除,alone为true是此项可为空,为false是不可为空
onImgLeft: '../../img/navbar_erweima.svg', //左-按钮图标,测试svg格式最友好
onImgRight: '../../../img/navbar_sousuo.svg', //右-按钮图标,右侧为文字时可删除
}],
},
onLoad: function (e) {
//自定义页面标题
console.log(e)
let gw_navbarTop = this.data.gw_navbarTop
for (let i in gw_navbarTop) {
gw_navbarTop[i].navigationBarTitle = e.name + '设置配置'
}
this.setData({
gw_navbarTop
})
},
})
index.wxml
<!-- 引用模板 -->
<import src="/template/gw_navbarTop/gw_navbarTop" />
<block wx:for="{{gw_navbarTop}}" wx:key="id">
<template is="gw_navbarTop" data="{{...item}}" />
</block>
<!-- page-conten 在wxss中设置绝对定位属性即可 -->
<view class="page-conten" style="{{'top:' + navigationBarHeight}}">
<view>你好,我的世界!我是页面主体内容</view>
</view>
三、模板文件
gw_navbarTop.wxml
<template name="gw_navbarTop">
<view class="gw_navbarTop" style="{{'height: ' + navigationBarHeight}}">
<view style="{{'height: ' + statusBarHeight}}"></view>
<view class='gw_title-container'>
<view class='gw_capsule {{alone?"gw_capsule_alone":""}}'>
<view class="iconLeft" bindtap='{{onLeft}}'>
<image src='{{onImgLeft}}'></image>
</view>
<block wx:if="{{!alone}}">
<view class='gw_navbarTop_baoCunBtn' bindtap='{{onRight}}' style="width: {{btnText !== ''?'45px':''}};">
<block wx:if="{{btnText !== ''}}">
<text class="gw_navbarTop_baoCunBtn_text">{{btnText}}</text>
</block>
<block wx:else>
<image src='{{onImgRight}}'></image>
</block>
</view>
</block>
</view>
<view class='gw_navbarTop_title'>{{navigationBarTitle}}</view>
</view>
</view>
</template>
gw_navbarTop.wxss
代码就是app.wxss的样式代码
Demo下载:https://iweb-web.oss-cn-shanghai.aliyuncs.com/GW/navigationStyle.zip
© 版权声明
文章版权归作者所有,未经允许请勿转载。