wepy 微信小程序 自定義導航欄

效果圖:?

(圖1)
(圖2)

目的:
????????????1)為了實現(xiàn) 圖1 中左上角 可以是 search搜索圖標 在點擊后進入 搜索頁?

? ? ? ? ? ? 2)為了實現(xiàn) 圖2 中 頂部背景圖 效果

所以只能通過自定義導航實現(xiàn)

注:
? ?????① 我用的是wepy 小程序框架 1.7的版本?
? ? ? ?②? 使用cover-view & cover-image 是為了 解決? 引入的圖表 canvas元素在view元素的上層? 滾動到導航欄的時候 會 遮擋導航欄的問題

一、先將 navigationStyle設置為custom? ?


二、app.wepy? ?獲取狀態(tài)欄的高度??

onLaunch() {
?????????wx.getSystemInfo({
?????????????????success: res => {
?????????????????????this.globalData.statusBarHeight = res.statusBarHeight;?
?????????????????}
?????????});

?}



導航欄組件

wxml? ?
使用cover-view & cover-imgage 是為了解決圖表canvas 在view 上層歉胶。導致遮擋 導航欄問題? (使用了cover-view只支持嵌套?cover-viewcover-image竖配,可在?cover-view?中使用?button

如果不需要用的話 可以自行換 view & image??

<cover-view class="nav-wrap" style="height: {{height*2 + 20}}px;overflow:hidden; background:{{bgColor}};">
?????????<!-- // 導航欄 中間的標題 -->
?????????<cover-view class="nav-title" style="line-height: {{height*2 + 44}}px; color:{{color}}">{{title}}</cover-view>
? ? ? ? ? <cover-view style="display: flex; justify-content: space-around;flex-direction: column">
?????????<!-- // 其中v-if='{{navbarData.showCapsule}}' 是控制左上角按鈕的顯示隱藏,1:顯示搜索按鈕 2:顯示返回按鈕 -->
? ? ? ? ? ? <cover-view class="nav-capsule" style="line-height: {{height*2 + 44}}px;" wx:if="{{showCapsule}}">
?????????????????????<cover-view bindtap="_navback" wx:if="{{showCapsule === 2 }}">
?????????????????????????????????<cover-image src="/images/icon_Back_w@2x.png" style="width:24px;height:24px;margin-top:{{height+6}}px" class="back-search" hidden="{{color !='#fff'}}"></cover-image>
?????????????????????????????????<cover-image src="/images/icon_Back@2x.png" style="width:24px;height:24px;margin-top:{{height+6}}px" class="back-search" hidden="{{color !='#000'}}"></cover-image>
? ? ? ? ? ? ? ?</cover-view>
?<cover-view bindtap="_backsearch" wx:if="{{showCapsule === 1 }}">
?????????????<cover-image src="/images/icon_search_top@2x.png" style="width:24px;height:24px;margin-top:{{height+6}}px" class="back-pre"></cover-image>
?????????????</cover-view>
?????????</cover-view>
?????</cover-view>
?</cover-view>



style

/* 頂部要固定定位 標題要居中 自定義按鈕和標題要和右邊微信原生的膠囊上下對齊 */<style>.nav-wrap { position: fixed; width: 100%; top: 0; background: #fff; color: #000; z-index: 9999999;}/* 標題要居中 */.nav-title { position: absolute; text-align: center; max-width: 400rpx; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; top: 0; left: 0; right: 0; bottom: 0; margin: auto; font-size: 36rpx; color: #2c2b2b; font-weight: 600;}.nav-capsule { display: flex; align-items: center; margin-left: 30rpx; width: 140rpx; justify-content: space-between; height: 100%;}.navbar-v-line { width: 1px; height: 32rpx; background-color: #e5e5e5;}.back-pre,.back-search { width: 32rpx; height: 36rpx; margin-top: 4rpx; padding: 10rpx;}.nav-capsule .back-search { width: 36rpx; height: 40rpx; margin-top: 3rpx;}</style>


script

<script>
????????import wepy from 'wepy';export default class Navbar extends wepy.component {
?????????????data = {};
?????????????props = {
?????????????????????title: String,? //導航欄文字
? ? ? ? ? ? ? ? ? ? ?bgColor: String,? //導航欄背景顏色????
? ? ? ? ? ? ? ? ? ? ?color: { type: String, default: '#000' },? //字體顏色
?????????????????????showCapsule: { type: Number }????//1:search; 2:back; 3:share進來的 || null =》不顯示?
?????????????};
?????????????events = {};
?????????????computed = {
?????????????????????height() {
?????????????????????????????var height = this.$parent.$parent.globalData.statusBarHeight;? ?//獲取全局的狀態(tài)欄高度?statusBarHeight??
?????????????????????????????return height;
?????????????????????}
? ? ? ? ? ? ?};
?????????????methods = {
? ? ? ? ? ? ? ? ? ? _navback() {
?????????????????????????wx.navigateBack({ delta: 1 });
? ? ? ? ? ? ? ? ? ? },
? ? ? ? ? ? ? ? ? ?_backsearch() {
?????????????????????????wx.navigateTo({
?????????????????????????????????url: '/pages/search/search'
?????????????????????????});
?????????????????}
? ? ? ? ? ? };
?????????onLoad() {
????????????}?
}
</script>


(圖2)


實現(xiàn)圖2中的效果?

①將導航欄設置成透明背景?

② 將圖片放在父組件?

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末里逆,一起剝皮案震驚了整個濱河市进胯,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌原押,老刑警劉巖胁镐,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異班眯,居然都是意外死亡希停,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門署隘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來宠能,“玉大人,你說我怎么就攤上這事磁餐∥コ纾” “怎么了阿弃?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長羞延。 經常有香客問我渣淳,道長,這世上最難降的妖魔是什么伴箩? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任入愧,我火速辦了婚禮,結果婚禮上嗤谚,老公的妹妹穿的比我還像新娘棺蛛。我一直安慰自己,他們只是感情好巩步,可當我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布旁赊。 她就那樣靜靜地躺著,像睡著了一般椅野。 火紅的嫁衣襯著肌膚如雪终畅。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天竟闪,我揣著相機與錄音离福,去河邊找鬼。 笑死炼蛤,一個胖子當著我的面吹牛术徊,可吹牛的內容都是我干的。 我是一名探鬼主播鲸湃,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼子寓!你這毒婦竟也來了暗挑?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤斜友,失蹤者是張志新(化名)和其女友劉穎炸裆,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鲜屏,經...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡烹看,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了洛史。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片惯殊。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖也殖,靈堂內的尸體忽然破棺而出土思,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布己儒,位于F島的核電站崎岂,受9級特大地震影響,放射性物質發(fā)生泄漏闪湾。R本人自食惡果不足惜冲甘,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望途样。 院中可真熱鬧江醇,春花似錦、人聲如沸娘纷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽赖晶。三九已至律适,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間遏插,已是汗流浹背捂贿。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工胳嘲, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留厂僧,地道東北人。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓了牛,卻偏偏與公主長得像颜屠,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子鹰祸,可洞房花燭夜當晚...
    茶點故事閱讀 44,979評論 2 355

推薦閱讀更多精彩內容