微信小程序(六)實現(xiàn)自定義導航欄

導航欄.png

1.頁面配置

頁面配置

  • navigationStyle:導航欄樣式,僅支持以下值:
  • default 默認樣式
  • custom 自定義導航欄疫赎,只保留右上角膠囊按鈕

2.計算導航欄的高度

導航欄的高度組成部分.png

2-1.wx.getMenuButtonBoundingClientRect

wx.getMenuButtonBoundingClientRect

獲取菜單按鈕(右上角膠囊按鈕)的布局位置信息糠赦。坐標信息以屏幕左上角為原點锅铅。

  • height:高度,單位:px绍在。
  • top:上邊界坐標,單位:px。

2-2.wx.getSystemInfo

wx.getSystemInfo

獲取系統(tǒng)信息枣购。

  • statusBarHeight:狀態(tài)欄的高度,單位px擦耀。

2-3.計算

導航欄的高度 = 狀態(tài)欄高度 + 菜單按鈕高度 + 菜單按鈕的上下間隔的高度

3.基礎(chǔ)組件

基礎(chǔ)組件

3-1.什么是組件

什么是組件:

  • 組件是視圖層的基本組成單元棉圈。
  • 組件自帶一些功能與微信風格一致的樣式。
  • 一個組件通常包括 開始標簽結(jié)束標簽眷蜓,屬性 用來修飾這個組件分瘾,內(nèi)容 在兩個標簽之內(nèi)。

注意:所有組件與屬性都是小寫吁系,以連字符-連接

<組件 屬性1="" 屬性2="" ... >
組件內(nèi)容
</組件>

3-2.屬性類型

3-3.公共屬性

id, class, style, hidden, data-*, bind*/catch*

4.數(shù)據(jù)綁定

數(shù)據(jù)綁定

數(shù)據(jù)綁定使用 Mustache 語法(雙大括號)將變量包起來德召。

4-1.組件內(nèi)容

<view> {{ message }} </view>
Page({
  data: {
    message: 'Hello MINA!'
  }
})

4-2.組件屬性(需要在雙引號之內(nèi))

<view id="item-{{id}}"> </view>
Page({
  data: {
    id: 0
  }
})

4-3.控制屬性(需要在雙引號之內(nèi))

<view wx:if="{{condition}}"> </view>
Page({
  data: {
    condition: true
  }
})

4-4.關(guān)鍵字(需要在雙引號之內(nèi))

true:boolean 類型的 true,代表真值汽纤。

false: boolean 類型的 false上岗,代表假值。

<checkbox checked="{{false}}"> </checkbox>

特別注意:不要直接寫 checked="false"蕴坪,其計算結(jié)果是一個字符串肴掷,轉(zhuǎn)成 boolean 類型后代表真值。

4-5.運算

可以在 {{}} 內(nèi)進行簡單的運算背传。

4-6.擴展運算符

擴展運算符 ... 來將一個對象展開

<template is="objectCombine" data="{{...obj1, ...obj2, e: 5}}"></template>
Page({
  data: {
    obj1: {
      a: 1,
      b: 2
    },
    obj2: {
      c: 3,
      d: 4
    }
  }
})

最終組合成的對象是 {a: 1, b: 2, c: 3, d: 4, e: 5}呆瞻。

5-3.事件對象

  • target:觸發(fā)事件的源組件。
    dataset:事件源組件上由data-開頭的自定義屬性組成的集合径玖。

  • currentTarget:事件綁定的當前組件痴脾。

6.WXSS

wxss
css參考手冊

6-1.尺寸單位

rpx: iPhone6 上,屏幕寬度為375px挺狰,共有750個物理像素明郭,則750rpx = 375px = 750物理像素,1rpx = 0.5px = 1物理像素丰泊。
建議: 開發(fā)微信小程序時設(shè)計師可以用 iPhone6 作為視覺稿的標準薯定。

6-2.選擇器

  • .class:類選擇器。
  • id:id選擇器瞳购,具有唯一性话侄。

  • element:組件選擇器。

6-3.樣式的三種方式

  • 內(nèi)聯(lián)(行內(nèi))樣式 --- 通過 style 設(shè)置。
  • 全局樣式
    定義在 app.wxss 中的樣式為全局樣式年堆,作用于每一個頁面吞杭。
  • 局部(頁面)樣式
    在 page 的 wxss 文件中定義的樣式為局部樣式,只作用在對應(yīng)的頁面变丧,并會覆蓋 app.wxss 中相同的選擇器芽狗。

優(yōu)先級:行內(nèi)樣式 > 頁面樣式 > 全局樣式。

注意:一般靜態(tài)的樣式統(tǒng)一寫到 class 中痒蓬。style 接收動態(tài)的樣式童擎。

6-4.定位

定位(Positioning) 屬性

  • display --- 規(guī)定元素應(yīng)該生成的框的類型。
    inline --- 默認攻晒。此元素會被顯示為內(nèi)聯(lián)元素顾复,元素前后沒有換行符。
    flex --- 微信小程序建議用鲁捏。
    inline-block --- 行內(nèi)塊元素 芯砸。

  • position
    static --- 默認,沒有定位给梅。
    absolute --- 生成絕對定位的元素假丧,相對于 static 定位以外的第一個父元素進行定位。 - 絕對定位的元素是相對離它最近的一個已定位的父級元素進行定位破喻。

     ---> 父級元素是否已經(jīng)定位看是否設(shè)置了 position虎谢。relative --- 生成相對定位的元素
    


---> 相對定位的元素是在原來的位置上相對自己做了一個偏移曹质。

fixed --- 元素會被移出正常文檔流婴噩,并不為元素預(yù)留空間,而是通過指定元素相對于屏幕視口(viewport)的位置來指定元素位置羽德。元素的位置在屏幕滾動時不會改變几莽。
sticky --- 粘性定位,該定位基于用戶滾動的位置宅静。它的行為就像 position:relative; 而當頁面滾動超出目標區(qū)域時章蚣,它的表現(xiàn)就像 position:fixed;,它會固定在目標位置姨夹。

6-5.盒子

彈性盒子模型(Flexible Box) 屬性(新)

微信建議使用flex纤垂。

flex的容器.png
  • flex --- 復合屬性。設(shè)置或檢索彈性盒模型對象的子元素如何分配空間磷账。
    flex:1 --- 讓所有彈性盒模型對象的子元素都有相同的長度峭沦,忽略它們內(nèi)部的內(nèi)容。

  • flex-direction --- 該屬性通過定義flex容器的主軸方向來決定felx子項在flex容器中的位置 逃糟。
    column --- 設(shè)置主軸為垂直方向吼鱼。
    row --- 默認蓬豁。設(shè)置主軸為水平方向。

  • justify-content --- 元素在主軸上的對齊方式菇肃。
    flex-start(默認地粪,與開始位置對齊)、flex-end(與結(jié)束位置對齊)琐谤,元素排列順序不變蟆技。
    baseline
    center(居中對齊)。
    space-around(元素平分所有空間笑跛,并且單個元素在自己的空間里面居中)付魔。
    space-between(與 space-around 一樣,只是兩邊靠邊)飞蹂。

  • align-items --- 元素在交叉軸上的對齊方式。

  • align-self --- 定義交叉軸方向元素自身的對齊方式翻屈。

  • flex-wrap --- 控制flex容器是單行或者多行陈哑。
    nowrap --- 默認。規(guī)定靈活的項目不拆行或不拆列伸眶。
    wrap --- 規(guī)定靈活的項目在必要的時候拆行或拆列惊窖。

6-6.用戶界面

用戶界面

  • box-sizing
    border-box --- 通過從已設(shè)定的寬度和高度分別減去邊框和內(nèi)邊距才能得到內(nèi)容的寬度和高度。
    控件超過了父view的界限厘贼,就用這個屬性限制

6-7.邊框

邊框(Border) 和 輪廓(Outline) 屬性

  • border-radius --- 圓角邊框 界酒。
  • border-top: --- 復合屬性。設(shè)置對象頂部邊框的特性嘴秸。
    可以按順序設(shè)置如下屬性: border-top-width, border-top-style, and border-top-color毁欣。
    例如:12rpx solid #f7f7f7;
    solid --- 實線 。
    dashed --- 虛線岳掐。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
禁止轉(zhuǎn)載凭疮,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者。
  • 序言:七十年代末串述,一起剝皮案震驚了整個濱河市执解,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌纲酗,老刑警劉巖衰腌,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異觅赊,居然都是意外死亡右蕊,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門茉兰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來尤泽,“玉大人,你說我怎么就攤上這事∨髟迹” “怎么了熊咽?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長闹丐。 經(jīng)常有香客問我横殴,道長,這世上最難降的妖魔是什么卿拴? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任衫仑,我火速辦了婚禮,結(jié)果婚禮上堕花,老公的妹妹穿的比我還像新娘文狱。我一直安慰自己,他們只是感情好缘挽,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布瞄崇。 她就那樣靜靜地躺著,像睡著了一般壕曼。 火紅的嫁衣襯著肌膚如雪苏研。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天腮郊,我揣著相機與錄音摹蘑,去河邊找鬼。 笑死轧飞,一個胖子當著我的面吹牛衅鹿,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播踪少,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼塘安,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了援奢?” 一聲冷哼從身側(cè)響起兼犯,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎集漾,沒想到半個月后切黔,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡具篇,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年纬霞,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片驱显。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡诗芜,死狀恐怖瞳抓,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情伏恐,我是刑警寧澤孩哑,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站翠桦,受9級特大地震影響横蜒,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜销凑,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一丛晌、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧斗幼,春花似錦澎蛛、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至渠羞,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間智哀,已是汗流浹背次询。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留瓷叫,地道東北人屯吊。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像摹菠,于是被迫代替她去往敵國和親盒卸。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容