最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解mpvue中小程序自定義導(dǎo)航組件開發(fā)指南

 更新時(shí)間:2019年02月11日 10:51:13   作者:leason57  
這篇筆記主要記錄一下基于mpvue的小程序中實(shí)現(xiàn)自定義導(dǎo)航的思路及應(yīng)用。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

這篇筆記主要記錄一下基于mpvue的小程序中實(shí)現(xiàn)自定義導(dǎo)航的思路及應(yīng)用。分享出來拋磚引玉,如有謬誤或優(yōu)化空間,歡迎交流。

小程序的配置項(xiàng)navigationStyle設(shè)置為custom之后,導(dǎo)航欄只保留右上角膠囊按鈕,顏色、標(biāo)題文字內(nèi)容均可以自定義,可以此實(shí)現(xiàn)導(dǎo)航欄的個(gè)性化需求,實(shí)際應(yīng)用如沉浸式視頻播放頁等。

小程序7.0.0之后的版本開始支持自定義單個(gè)頁面的導(dǎo)航欄,將頁面的navigationStyle設(shè)置為custom即可。mpvue的配置方式如下:

由于不同操作系統(tǒng)、不同機(jī)型的導(dǎo)航欄高度是不同的,所以自定義導(dǎo)航欄核心要解決的問題是不同機(jī)型中導(dǎo)航欄高度的兼容問題。

如上圖所示,導(dǎo)航欄一共由兩部分組成:狀態(tài)欄和標(biāo)題欄。狀態(tài)欄就是用來展示時(shí)間、網(wǎng)絡(luò)狀態(tài)的那一欄,全面屏(劉海屏幕)的機(jī)型中狀態(tài)欄會(huì)比其他屏幕高很多:ios系統(tǒng)帶劉海屏的都是44,其他都為20,包括pad。 而安卓機(jī)的數(shù)值則更多。我們可以通過微信的apiwx.getSystemInfo獲取狀態(tài)欄的高度(statusBarHeight)。而標(biāo)題欄高度不能通過小程序api獲取到,通過同級(jí)多個(gè)機(jī)型的測試數(shù)據(jù),我們基本可以按照ios中44px安卓中48px來算。
這樣一來就好辦了,通過statusBarHeight獲取到狀態(tài)欄高度后,再判斷當(dāng)前的系統(tǒng)加上對(duì)應(yīng)的標(biāo)題欄后,就可以獲取到正確的導(dǎo)航欄高度了。

template中的html代:(因?yàn)樾〕绦蛑械膙ideo組件有著最高的層級(jí),是不會(huì)被普通html標(biāo)簽覆蓋的,所以導(dǎo)航欄組件中全部采用了<cover-view>標(biāo)簽。):

<template>
  <div class="comp-navbar">
    <!-- 占位欄 -->
    <cover-view class="placeholder-bar" :style="{height: navBarHeight + 'px'}"> </cover-view>
    <!-- 導(dǎo)航欄主體 -->
    <cover-view class="navbar" :style="{height: navBarHeight + 'px',backgroundColor:navBackgroundColor}">
      <!-- 狀態(tài)欄 -->
      <cover-view class="nav-statusbar" :style="{height: statusBarHeight + 'px'}"></cover-view>
      <!-- 標(biāo)題欄 -->
      <cover-view class="nav-titlebar" :style="{height: titleBarHeight + 'px' }">
        <!-- home及后退鍵 -->
        <cover-view class="bar-options">
          <cover-view v-if="backVisible" class="opt opt-back" @click="backClick()">
          <cover-image class="back-image" src="/static/images/back.png"></cover-image>
          </cover-view>
          <cover-view class="line" v-if="backVisible && homePath"></cover-view>
          <cover-view v-if="homePath" class="opt opt-home" @click="homeClick()">
          <cover-image class="home-image" src="/static/images/home.png"></cover-image>
          </cover-view>
        </cover-view>
        <!-- 標(biāo)題 -->
        <cover-view class="bar-title" :style="[{color:titleColor}]">{{title}}</cover-view>
      </cover-view>
    </cover-view>
  </div>
</template>

js代碼:

  beforeMount() {
    const self = this;
    wx.getSystemInfo({
      success(system) {
        console.log(`system:`, system);
        self.statusBarHeight = system.statusBarHeight;
        self.platform = system.platform;

        let platformReg = /ios/i;
        if (platformReg.test(system.platform)) {
          self.titleBarHeight = 44;
        } else {
          self.titleBarHeight = 48;
        }

        self.navBarHeight = self.statusBarHeight + self.titleBarHeight;
      }
    });
  },

自定義導(dǎo)航欄的可自定義內(nèi)容:標(biāo)題文字、文字顏色、標(biāo)題欄背景色、回退按鈕是否顯示、home按鈕的地址。示例代碼如下:

<navigation-bar :title="videoTitle"
  :navBackgroundColor="'pink'"
  :titleColor="'green'"
  :back-visible="true"
  :home-path="'/pages/index/main'"></navigation-bar>

最后奉上github地址,歡迎檢閱代碼,歡迎star。

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue+express 構(gòu)建后臺(tái)管理系統(tǒng)的示例代碼

    vue+express 構(gòu)建后臺(tái)管理系統(tǒng)的示例代碼

    這篇文章主要介紹了vue+express 構(gòu)建后臺(tái)管理系統(tǒng)的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-07-07
  • Vue express鑒權(quán)零基礎(chǔ)入門

    Vue express鑒權(quán)零基礎(chǔ)入門

    這篇文章主要介紹了詳解express鑒權(quán),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • vue前端頁面數(shù)據(jù)加載添加loading效果的實(shí)現(xiàn)

    vue前端頁面數(shù)據(jù)加載添加loading效果的實(shí)現(xiàn)

    這篇文章主要介紹了vue前端頁面數(shù)據(jù)加載添加loading效果的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • vue.js 實(shí)現(xiàn)點(diǎn)擊展開收起動(dòng)畫效果

    vue.js 實(shí)現(xiàn)點(diǎn)擊展開收起動(dòng)畫效果

    這篇文章主要介紹了vue.js 實(shí)現(xiàn)點(diǎn)擊展開收起動(dòng)畫效果,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-07-07
  • Vue.js中v-on指令的用法介紹

    Vue.js中v-on指令的用法介紹

    這篇文章介紹了Vue.js中v-on指令的用法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • 淺談vue中使用圖片懶加載vue-lazyload插件詳細(xì)指南

    淺談vue中使用圖片懶加載vue-lazyload插件詳細(xì)指南

    本篇文章主要介紹了淺談vue中使用圖片懶加載vue-lazyload插件詳細(xì)指南,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-10-10
  • Vue中 Vue.prototype使用詳解

    Vue中 Vue.prototype使用詳解

    本文將結(jié)合實(shí)例代碼,介紹Vue中 Vue.prototype使用,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-07-07
  • Vue?Electron實(shí)現(xiàn)輸入法自動(dòng)刷字?jǐn)?shù)功能詳解

    Vue?Electron實(shí)現(xiàn)輸入法自動(dòng)刷字?jǐn)?shù)功能詳解

    這篇文章主要介紹了Vue?Electron實(shí)現(xiàn)輸入法自動(dòng)刷字?jǐn)?shù)功能,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)C#有一定的幫助,感興趣的小伙伴可以跟隨小編一起了解一下
    2022-12-12
  • SpringBoot+Vue項(xiàng)目線上買菜系統(tǒng)源碼展示

    SpringBoot+Vue項(xiàng)目線上買菜系統(tǒng)源碼展示

    本線上買菜系統(tǒng)采用的數(shù)據(jù)庫是Mysql,使用springboot框架開發(fā)。在設(shè)計(jì)過程中,充分保證了系統(tǒng)代碼的良好可讀性、實(shí)用性、易擴(kuò)展性、通用性、便于后期維護(hù)、操作方便以及頁面簡潔等特點(diǎn),需要的朋友可以參考下
    2022-08-08
  • Vue3中reactive函數(shù)toRef函數(shù)ref函數(shù)簡介

    Vue3中reactive函數(shù)toRef函數(shù)ref函數(shù)簡介

    這篇文章主要介紹了Vue3中的三種函數(shù),分別對(duì)reactive函數(shù)toRef函數(shù)以及ref函數(shù)原理及使用作了簡單介紹,有需要的朋友可以借鑒參考下
    2021-09-09

最新評(píng)論

菏泽市| 南皮县| 玉门市| 滕州市| 正蓝旗| 特克斯县| 桦南县| 宜春市| 汕头市| 邻水| 黔东| 涿鹿县| 澎湖县| 枣强县| 英德市| 三亚市| 全州县| 孟州市| 贵溪市| 吴堡县| 万州区| 嘉祥县| 庆元县| 霍林郭勒市| 淳安县| 长治市| 泸西县| 内乡县| 革吉县| 威海市| 武清区| 闵行区| 甘德县| 荥阳市| 紫金县| 阜宁县| 安西县| 昌平区| 宁城县| 姚安县| 阜新|