W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
解釋: 頂部自定義的導航欄,其中不包含界面,僅僅是限制了開發(fā)者寫頂部 bar 內(nèi)容的區(qū)域,使之在安全區(qū)內(nèi)完成頂部內(nèi)容的渲染;支持配置返回首頁、上一頁按鈕,和滑動切換效果主題。
設(shè)計文檔詳見 頂部導航欄 。
屬性名 | 類型 | 必填 | 默認值 |
說明
|
---|---|---|---|---|
backgroundColor | string | 否 | #fff | 導航背景色 |
frontColor | string | 否 | #000 | 前景顏色(目前特指字體顏色) |
opacity | Number | 否 | 1 | 導航背景透明度 |
navigationStyle | Object | 否 | {} | 導航容器自定義樣式(加在行間樣式上) |
navigationAreaStyle | Object | 否 | {} | 導航內(nèi)容可視區(qū)自定義樣式(加在行間樣式上) |
type | String | 否 | default | 自定義導航類型:default 為默認,switchNav 為切換導航欄模式 |
backIcon | Boolean | 否 | false | 是否顯示返回圖標 |
homeIcon | Boolean | 否 | false | 是否顯示首頁圖標 |
backIconSize | String | 否 | 35.02rpx | 返回圖標大小 |
homeIconSize | String | 否 | 35.02rpx | 顯示首頁圖標大小 |
switchStartPosition | Number | 否 | statusBarHeight
(計算得來的 默認狀態(tài)欄的高度) |
切換模式下,導航欄起始位置,默認狀態(tài)欄的高度 |
switchEndPosition | Number | 否 | 100 | 切換模式下,是否隱藏頂部 |
commonBar | Object | 否 | {'opacity':1,
'title':'', 'frontColor':'#000', 'bgColor':'#fff', 'backIcon':true, 'homeIcon':false, 'navigationStyle':{}, 'navigationAreaStyle':{}} |
切換模式下,初始的導航樣式 |
fixedBar | Object | 否 | {'opacity':1,
'title':'fixed', 'frontColor':'#000', 'bgColor':'pink', 'backIcon':true, 'homeIcon':false, 'navigationStyle':{}, 'navigationAreaStyle':{}} |
切換模式下,滾動后的導航樣式 |
isFullScreenWidth | Boolean | 否 | false | 寬度是否撐滿屏幕 |
<view class="wrap">
<image class="iphone-image-area"
mode="widthFix"
src="{{showSwicthNav ? iphoneGifSrc : iphoneImgSrc}}"
/>
<image class="status-image-area {{showSwicthNav ? 'hide' : ''}}"
mode="widthFix"
src="{{statusImgSrc}}"
/>
<smt-navigation
navigation-style="{{navigationStyle}}"
navigation-area-style="{{navigationAreaStyle}}"
back-icon="{{backIcon}}"
home-icon="{{homeIcon}}"
front-color="#fff"
bindbackHdl="backHdl"
bindhomeHdl="homeHdl"
backgroundColor="transparent">
<view class="navigation-content-area {{showTitle ? '' : 'hide'}}">
<text class="navigation-title">{{title}}</text>
<text class="navigation-desc">{{desc}}</text>
</view>
</smt-navigation>
<view class="btns-area">
<button s-for="item,index in btnsList"
type="primary"
data-type="{{item.type}}"
data-index="{{index}}"
disabled="{{item.disabled}}"
hover-stop-propagation="true"
bind:tap="tapHdl">
{{item.text}}
</button>
</view>
</view>
Page({
data: {
homeIcon: false,
backIcon: false,
btnsList: [{
type: 'back',
text: '顯示"返回上一頁"按鈕'
}, {
type: 'home',
text: '顯示"返回首頁"按鈕'
}, {
type: 'both',
text: '顯示"返回上一頁&返回首頁"按鈕'
}, {
type: 'switch',
text: '點擊演示上滑頁面導航變色'
}, {
type: 'reset',
text: '重置'
}],
iphoneImgSrc: 'https://b.bdstatic.com/miniapp/images/simulator.png',
iphoneGifSrc: 'https://b.bdstatic.com/miniapp/images/simulator.gif',
statusImgSrc: 'https://b.bdstatic.com/miniapp/images/smt_status.png',
navigationStyle: {
'position': 'relative',
'margin-top': '-836rpx',
'padding': '0 0 0 30.19rpx',
'height': '30px',
'width': '100%'
},
navigationAreaStyle: {
height: '45px'
}
},
/**
* 點擊返回上一級按鈕
*
*/
backHdl() {
this.changeNavHdl('上一頁面');
},
/**
* 點擊返回首頁按鈕
*
*/
homeHdl() {
this.changeNavHdl('小程序首頁');
},
/**
* 切換模擬器公共方法
*
* @param {string} title 標題
* @param {string} desc 描述
* @param {boolean} backIcon 是否配置返回按鈕
* @param {boolean} homeIcon 是否配置返回首頁按鈕
*/
changeNavHdl(title) {
this.setData({
title,
desc: 'detail',
backIcon: false,
homeIcon: false
});
setTimeout(() => {
this.setData({
showTitle: true
});
}, 300);
},
/**
* 點擊按鈕觸發(fā)
*
* @param {Event} e 事件對象
* @param {Object} e.currentTarget.dataset 該按鈕的數(shù)據(jù)對象
*/
tapHdl(e) {
const {type, index} = e.currentTarget.dataset;
const homeIcon = /home|both/.test(type);
const backIcon = /back|both/.test(type);
this.setData({
title: '',
desc: '',
homeIcon,
backIcon,
showTitle: false,
showSwicthNav: type === 'switch',
btnsList: this.data.btnsList.filter((btnVal, btnIndex) => {
if (type === 'reset') {
btnVal.disabled = false;
}
else if (btnIndex === index) {
btnVal.disabled = true;
}
return btnVal;
})
});
}
});
.wrap {
height: 100%;
padding: 0;
background: #f5f5f5;
}
.hide {
opacity: 0;
}
.header-content-custom {
display: flex;
width: 100%;
height: 100%;
align-items: center;
justify-content: space-between;
}
.header-content-area {
height: 100%;
flex: 1;
box-sizing: border-box;
}
.wrap .smt-card-area {
margin: 25.362rpx 0 72.464rpx;
background: #fff;
}
.wrap .area-content {
height: 635.87rpx;
}
.header-content-subtitle {
z-index: 99;
display: block;
font-size: 23.55rpx;
color: #999;
}
.wrap .item-logo {
display: inline-block;
width: 32.609rpx;
height: 32.609rpx;
margin: 34.005rpx 0;
}
.page-status-hover {
opacity: .2;
}
.iphone-image-area {
width: 702.9rpx;
height: 580.92rpx;
margin: 22.34rpx 23.55rpx;
}
.status-image-area {
width: 661.84rpx;
position: relative;
top: -766rpx;
left: 44rpx;
}
.btns-area {
position: fixed;
width: 100%;
bottom: 18.12rpx;
background: #f5f5f5;;
padding-top: 12.08rpx;
}
.navigation-content-area {
width: 100%;
margin-left: 20%;
}
.navigation-desc {
font-size: 23.55rpx;
}
.navigation-title,
.navigation-desc {
display: flex;
justify-content: center;
align-items: center;
transition: opacity .5;
}
.navigation-desc {
opacity: .6;
}
button {
margin: 36.23rpx 41.67rpx;
font-size: 32.61rpx;
line-height: 79.71rpx;
}
{
"navigationBarTitleText": "icon",
"navigationStyle": "custom",
"backgroundColorTop": "#f5f5f5",
"backgroundColor": "#f5f5f5",
"usingComponents": {
"smt-navigation": "@smt-ui/component/src/navigation",
"smt-icon": "@smt-ui/component/src/icon"
}
}
左側(cè)自定義區(qū)域可呈現(xiàn)選擇城市、搜索框等功能。注意左側(cè)自定義區(qū)域內(nèi)容應與右側(cè)的膠囊水平對齊。技術(shù)實現(xiàn)請參考開發(fā)文檔詳見 全局配置 。
正確
左側(cè)城市選擇功能與右側(cè)膠囊水平對齊。
錯誤
左側(cè)城市選擇功能與右側(cè)膠囊未水平對齊。
直接訪問小程序某頁面(非首頁)時,頂部導航欄應提供回首頁(homeIcon)功能便于用戶操作,注意此時因未發(fā)生跳轉(zhuǎn)無需提供返回功能。
正確
直接訪問小程序某頁面提供回首頁功能。
錯誤
直接訪問小程序某頁面未提供回首頁功能。
訪問某頁面(非首頁)后在小程序內(nèi)發(fā)生跳轉(zhuǎn),自定義功能區(qū)應提供返回(backIcon)和回首頁(homeIcon)功能,從左至右依次展現(xiàn)。
正確
正確有序的展現(xiàn)返回和回首頁功能。
錯誤
返回和回首頁功能展現(xiàn)順序有誤。
自定義配置容器背景(backgroundColor)顏色時,請重點關(guān)注信息的可識別性和整體閱讀舒適度。狀態(tài)欄顏色與頂部導航欄顏色一致。
正確
導航欄背景與元素搭配舒適、內(nèi)容易讀性佳。
錯誤
導航欄背景與元素搭配不舒適、內(nèi)容易讀性差。
頂部導航欄支持上滑變色瀏覽體驗更為沉浸,請注意切換后導航背景顏色配置應注意與頁面內(nèi)容背景顏色一致。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: