Framework7(07:組件之導(dǎo)航欄和工具欄,狀態(tài)欄,側(cè)邊欄)

1.導(dǎo)航欄和工具欄的布局類型

在向應(yīng)用添加導(dǎo)航欄和工具欄之前,我們需要決定使用哪種布局关翎。

Framework7在這方面很自由橄登,有3種不同類型的導(dǎo)航欄/工具欄布局,它們對應(yīng)著在頁面/視圖中的不同位置钞螟。

  • 靜態(tài)布局
    靜態(tài)布局可能是最少使用的布局。在這種情況下谎碍,導(dǎo)航欄和工具欄只是可以滾動的頁面內(nèi)容的一部分鳞滨,每個頁面都有它自己的導(dǎo)航欄和工具欄
  • 固定布局
    在固定布局中,也是每個頁面都有它自己的導(dǎo)航欄和工具欄椿浓,但是它們在屏幕上始終可見太援,不會隨著頁面內(nèi)容滾動

與靜態(tài)布局相比闽晦,固定布局的不同之處在于:

  • 導(dǎo)航欄和工具欄是Page的子元素(<div class="page">)
  • 每個頁面擁有額外的“navbar-fixed”類(對于固定導(dǎo)航欄)和“toolbar-fixed”類(對于固定工具欄)

注意扳碍,如果你想要對單視圖中的每個頁面使用固定布局,可以直接在父頁面(<div class="pages">)上添加“navbar-fixed”和“toolbar-fixed”類仙蛉,而不是對每個單頁面分別添加笋敞。

  • 穿透布局(iOS only)

這是最有趣,最被廣泛使用的布局 —— 在不同頁面間切換時荠瘪,導(dǎo)航欄和工具欄保持不變夯巷。通過這種布局,可以實現(xiàn)酷炫的動態(tài)導(dǎo)航(不要忘記在視圖初始化的時候啟用它)

與靜態(tài)和固定布局相比哀墓,穿透布局的不同之處在于:

  • 導(dǎo)航欄和工具欄是視圖的子元素(<div class="view">)
  • 具有穿透布局的導(dǎo)航欄和工具欄的視圖擁有額外的“navbar-through”類(對于穿透類型的導(dǎo)航欄)和"toolbar-through"類(對于穿透類型的工具欄)
  • 混合布局
    對于不同的視圖趁餐,你可以使用不同的布局,比如在一個視圖中使用固定布局篮绰,在另一個中使用穿透布局后雷。其實,你也可以在單視圖中混合使用這些布局。例如臀突,你可以使用穿透導(dǎo)航欄固定工具欄勉抓。

無導(dǎo)航欄/工具欄
如果你不需要導(dǎo)航欄或工具欄,你大可不必包含它們候学,并且不用在page/pages/view中添加相應(yīng)的類(“"navbar-fixed”藕筋,“navbar-through”,“toolbar-fixed”梳码,“toolbar-through”

2.導(dǎo)航欄

導(dǎo)航欄是一個固定區(qū)域 (在固定穿透布局類型中) 隐圾。它位于屏幕頂部,包含頁面標題和導(dǎo)航元素掰茶。
導(dǎo)航欄包含3個部分:左翎承、中、右符匾。每個部分都可以包含任意的HTML內(nèi)容叨咖,但推薦按照如下方式使用:

  • 左部 用來放置返回鏈接圖標以及單獨的文字鏈接啊胶。
  • 中部 用來顯示頁面標題標簽鏈接(即按鈕控制)甸各。
  • 右部 和左部一樣。

3.導(dǎo)航欄布局

<div class="navbar">
    <div class="navbar-inner"> 
        <div class="left">Left</div>
        <div class="center">Center</div> 
        <div class="right">Right</div> 
   </div>
</div>

注意焰坪,導(dǎo)航欄的中心元素具有最低的寬度優(yōu)先級趣倾,當屏幕不能放下全部3個元素時,中部會被截斷某饰。

4.含有鏈接的導(dǎo)航欄

  • 要想在左/右部添加鏈接儒恋,只需要添加<a> 標簽,以及額外的 link類:

    <div class="right">
    <a href="#" class="link">Right Link</a>
    </div>

額外的 link 類并不是必須的黔漂,但是推薦使用诫尽,因為它添加了需要的鏈接尺寸,以及透明度特效炬守。

  • 多個鏈接
 <div class="left"> 
    <a href="#" class="link">Left 1</a> 
    <a href="#" class="link">Left 2</a>    
</div>
屏幕快照 2016-12-17 下午5.13.25.png
  • 含有圖標和文本的鏈接

  • 只有圖標的鏈接

5.導(dǎo)航欄的相關(guān)方法

myApp.hideNavbar(navbar)
myApp.showNavbar(navbar)
view.hideNavbar() 隱藏該視圖中的導(dǎo)航欄
view.showNavbar() 顯示該視圖中的導(dǎo)航欄
myApp.sizeNavbars(viewContainer) 調(diào)用這個方法會重新計算指定的View的導(dǎo)航欄的位置牧嫉,比如:myApp.sizeNavbars('.view-main') iOS only

6.自動隱藏導(dǎo)航欄

在通過Ajax載入的頁面上,當你不需要導(dǎo)航欄時减途,Framework7允許你自動隱藏導(dǎo)航欄酣藻。它只在你使用穿透類型的布局時才有用。

為了實現(xiàn)這一點鳍置,你要做的是添加"no-navbar"類到載入的頁面中(<div class="page no-navbar">)辽剧,然后在那里放置一個空的導(dǎo)航欄:

7.工具欄

工具欄是位于屏幕底端的固定(在固定和穿透布局類型中)區(qū)域,它包含導(dǎo)航元素税产。

工具欄不包含任何其他部分怕轿,內(nèi)部只含有普通文本坊夫。
默認情況下,所有的工具欄元素(鏈接)沿著工具欄等距分布 - 它們之間的距離相等撤卢。

導(dǎo)航欄的相關(guān)視圖方法:

myApp.hideToolbar(toolbar)
myApp.showToolbar(toolbar)
view.hideToolbar()
view.showToolbar()

Bottom Toolbar:
(android only)

8.帶標簽的工具欄

  • 標簽欄布局
    標簽欄和工具欄基本一致环凿,但是它有額外的"tabbar"類:

    <div class="toolbar tabbar"> <div class="toolbar-inner"> <a href="#tab1" class="tab-link active"> <i class="icon demo-icon-1"></i> </a> <a href="#tab2" class="tab-link"> <i class="icon demo-icon-2"></i> </a> <a href="#tab3" class="tab-link"> <i class="icon demo-icon-3"></i> </a> <a href="#tab4" class="tab-link"> <i class="icon demo-icon-4"></i> </a> </div></div>
    

默認情況下,所有的工具欄元素鏈接)沿著工具欄等距分布 - 它們之間的距離相等放吩。

9.向圖標添加角標

如果你需要向標簽欄圖標添加徽章智听,只需在圖標內(nèi)部放入<span class="badge">

<a href="#tab2" class="tab-link"> 
    <i class="icon demo-icon-2"> 
        <span class="badge bg-red">
             5
        </span> 
    </i> 
</a>

10.帶有文案的標簽欄

如果你需要使用帶有文案的標簽欄,需要在標簽欄上再加一個"tabbar-labels"類渡紫,然后把<span class="tabbar-label">放到鏈接里:

帶有文案的標簽欄在不同設(shè)備上會有更大的高度而不是44px:在iPhone上是50px到推,在iPad上是55px

因為這些高度的改變,你需要在固定和穿透布局中使用 "tabbar-labels-fixed"或者 "tabbar-labels-through"惕澎。

11.相關(guān)的App方法

myApp.hideToolbar(toolbar)
myApp.showToolbar(toolbar)

12.自動隱藏工具欄/導(dǎo)航欄

Framework7 允許你在ajax加載的頁面自動隱藏工具欄/導(dǎo)航欄莉测。只有在穿透布局的時候才可以使用。
你唯一需要做的就是在需要加載的頁面上加一個類 "no-tabbar"(<div class="page no-tabbar">)

13.狀態(tài)欄:

狀態(tài)欄遮罩:
iOS 7+允許創(chuàng)建全屏應(yīng)用唧喉,但是當狀態(tài)欄覆蓋你的應(yīng)用時捣卤,會有navbar縮短20px的問題。
Framework7可以自動檢測你的應(yīng)用是否是全屏模式八孝,如果是的話董朝,自動添加"with-statusbar-overlay"類到<html>
(如果不是的話,移除這個類)干跛。通過"with-statusbar-overlay"類(應(yīng)用處于全屏模式的時候)子姜,<html>
在頂部擁有額外的padding,把整個應(yīng)用的內(nèi)容下移狀態(tài)欄的高度(20px)楼入。
為了配合上面的功能哥捕,我們需要在<body>
內(nèi)添加<div class="statusbar-overlay">

<body> 
    <div class="statusbar-overlay">    
    </div>

這個"statusbar-overlay"div總是固定在屏幕頂端,默認隱藏嘉熊。當應(yīng)用處于全屏模式遥赚,并且html
含有"with-statusbar-overlay"類時,它可見记舆。

為了使我們的狀態(tài)欄背景變成粉色鸽捻,我們只需要添加一個CSS規(guī)則:

.statusbar-overlay { background: pink;}
這種邏輯允許對狀態(tài)欄背景自由地控制,我們可以動態(tài)改變它的背景泽腮。
比如,我們有暗色的帶有覆蓋效果的左側(cè)邊欄衣赶。當側(cè)邊欄打開時诊赊,我們可以讓狀態(tài)欄背景更暗:

/* Default Status bar background */.statusbar-overlay { background: pink; /* We can add transition for smooth color animation */ -webkit-transition: 400ms; transition: 400ms;} /* Change Status bar background when panel opened */body.with-panel-left-cover .statusbar-overlay { background: #222;} 

注意:

  • 在大屏幕網(wǎng)絡(luò)應(yīng)用上,狀態(tài)欄文本顏色總是白色的府瞄,沒有必要改變它碧磅。
  • PhoneGap應(yīng)用中碘箍,默認情況下,應(yīng)用狀態(tài)欄文本顏色總是黑色的鲸郊。在Framework7中丰榴,它不能被改變,但可以通過PhoneGap插件定制秆撮,如cordova-plugin-statusbar四濒。

14.側(cè)邊欄

讓我們看看如何添加側(cè)欄。我們的APP可能包含兩種側(cè)欄,一個在左邊,另一個在右邊职辨。我們應(yīng)該在body的開始處添加側(cè)欄的html body:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末盗蟆,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子舒裤,更是在濱河造成了極大的恐慌喳资,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,591評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件腾供,死亡現(xiàn)場離奇詭異仆邓,居然都是意外死亡,警方通過查閱死者的電腦和手機伴鳖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評論 3 392
  • 文/潘曉璐 我一進店門宏赘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人黎侈,你說我怎么就攤上這事察署。” “怎么了峻汉?”我有些...
    開封第一講書人閱讀 162,823評論 0 353
  • 文/不壞的土叔 我叫張陵贴汪,是天一觀的道長。 經(jīng)常有香客問我休吠,道長扳埂,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,204評論 1 292
  • 正文 為了忘掉前任瘤礁,我火速辦了婚禮阳懂,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘柜思。我一直安慰自己岩调,他們只是感情好,可當我...
    茶點故事閱讀 67,228評論 6 388
  • 文/花漫 我一把揭開白布赡盘。 她就那樣靜靜地躺著号枕,像睡著了一般。 火紅的嫁衣襯著肌膚如雪陨享。 梳的紋絲不亂的頭發(fā)上葱淳,一...
    開封第一講書人閱讀 51,190評論 1 299
  • 那天钝腺,我揣著相機與錄音,去河邊找鬼赞厕。 笑死艳狐,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的皿桑。 我是一名探鬼主播毫目,決...
    沈念sama閱讀 40,078評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼唁毒!你這毒婦竟也來了蒜茴?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,923評論 0 274
  • 序言:老撾萬榮一對情侶失蹤浆西,失蹤者是張志新(化名)和其女友劉穎粉私,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體近零,經(jīng)...
    沈念sama閱讀 45,334評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡诺核,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,550評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了久信。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片窖杀。...
    茶點故事閱讀 39,727評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖裙士,靈堂內(nèi)的尸體忽然破棺而出入客,到底是詐尸還是另有隱情,我是刑警寧澤腿椎,帶...
    沈念sama閱讀 35,428評論 5 343
  • 正文 年R本政府宣布桌硫,位于F島的核電站,受9級特大地震影響啃炸,放射性物質(zhì)發(fā)生泄漏铆隘。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,022評論 3 326
  • 文/蒙蒙 一南用、第九天 我趴在偏房一處隱蔽的房頂上張望膀钠。 院中可真熱鬧,春花似錦裹虫、人聲如沸肿嘲。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽睦刃。三九已至,卻和暖如春十酣,著一層夾襖步出監(jiān)牢的瞬間涩拙,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評論 1 269
  • 我被黑心中介騙來泰國打工耸采, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留兴泥,地道東北人。 一個月前我還...
    沈念sama閱讀 47,734評論 2 368
  • 正文 我出身青樓虾宇,卻偏偏與公主長得像搓彻,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子嘱朽,可洞房花燭夜當晚...
    茶點故事閱讀 44,619評論 2 354

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

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,078評論 25 707
  • 內(nèi)容抽屜菜單ListViewWebViewSwitchButton按鈕點贊按鈕進度條TabLayout圖標下拉刷新...
    皇小弟閱讀 46,755評論 22 665
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫旭贬、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,094評論 4 62
  • require在發(fā)生錯誤后搪泳,腳本會停止執(zhí)行 include在發(fā)生錯誤后只是發(fā)出警告稀轨,腳本會繼續(xù)執(zhí)行。 優(yōu)化代碼: ...
    QingLinger閱讀 249評論 0 0
  • 做為一個從小生活在沒太有季節(jié)變化的城市里人岸军,我一般很難理解語文閱讀理解里對于夏的描寫奋刽。 文章中往往寫著,這樣的天氣...
    多多多三歲閱讀 353評論 0 0