測試環境 | |
JQuery版本 | jquery-1.11.1.min.js(jquery-2.1.1.min.js也可使用), jquery-ui-1.10.4.custom.min.js |
測試瀏覽器 | Chrome36.0,Firefox31.0 |
Tabs是比較常見的JQuery功能,而且JQuery官方的UI中也有提供此功能給大家免費下載
(P.S. 那你還要介紹個屁阿~)
是der~那為什麼還要再多做介紹呢?
因為這樣才可以讓像我一樣
Tabs元件製作方式的機會,這樣以後在應用上才會更加廣泛
而且我想信大家打開官方的UI文件檔案,應該是跟我一樣「它認識我,我不認識它」的心情吧
這種寫法是我自己無聊的時候想出來的,所以跟我目前的程度一樣粗淺希望大家多海涵~謝謝
如果大家有興趣多看看別人寫的也可以參考男丁格爾所寫的Tabs元件唷~!
接下來就是開始進入主題的時候了
首先我們先建立一個Tabs的HTML Code(請參考下面的HTML Code)
<div id="tabs"> <ul> <li id="tab1"><a href="#tabDiv1">tab1-</a></li> <li id="tab2"><a href="#tabDiv2">tab2-</a></li> <li id="tab3"><a href="#tabDiv3">tab3-</a></li> </ul> <div id="tabDiv1" class="tabsty">tabDiv1</div> <div id="tabDiv2" class="tabsty">tabDiv2</div> <div id="tabDiv3" class="tabsty">tabDiv3</div> </div>
我們先建立一個Div叫做#tabs,這個Div裡面呢,包含了一個ul標籤在ul標籤下還有三個li標籤,
分別是#tab1、#tab2、#tab3,在各個li中還分別包含了a標籤,
並分別將href屬性設定為#tabDiv1、#tabDiv2、#tabDiv3,
另外還有三個Div分別它們的ID分別是#tabDiv1、#tabDiv2、#tabDiv3
注意:
a標籤中的href屬性記得要分別對應三個Div的ID屬性,
這是JQuery做判斷要用的千萬要注意,
在使用此JQuery Code的時候,架構的部分一定要跟下面介紹的Code一樣唷,
不然就要自己再去調整JQuery的Code了
另外要注意的小地方是,href在設定時要加上「#」符號,而在設定Div的ID時則不需要加上「#」符號唷~!
接下來就到了設定CSS樣式的時候了,這部分的話請參考下面Code中的註解說明,就不再贅述了~
body{ /*將網頁畫面主體的外距設為0象素,內距則是上下左右各5象素*/ margin:0px; padding:5px; } #tabs ul{ /*清除ul的項目符號*/ list-style:none; /*清除左右浮動的區塊*/ clear:both; /*將內距、外距設定為0象素*/ margin:0px; padding:0px; } #tabs{ /*將tabs區塊的寬度設定為100%讓寬度與上層元素一樣寬*/ width:100%; /*設定邊框*/ border:1px solid #000; } li{ border:1px solid #000; width:100px; /*將li設定為區塊*/ display:block; padding:10px; /*li內的文字置中*/ text-align:center; /*向左邊浮動*/ float:left; } li:hover{ /*滑鼠滑過li時更換li背景顏色*/ background:#FF0; } .tabsty{ clear:both; border:1px solid #000; height:50px; }
如果沒有問題的話接下來出現的畫面應該是像下圖這樣
這樣我們的Tabs就已經開始有一個雛形出現了,緊接著就讓我們開始進行JQuery的部分吧~!GO
首先我們要先設定一個名為tabs的function,並且這個function在呼叫時需要可以帶入參數key
這個key代表的是什麼呢? 它代表的是要變成Tabs元件Div區塊的id(在本範例就是#tabs)
function tabs(key){ //遍歷元件下的li標籤 $(key +" li").each(function(i, ele){ //將元件下的Div隱藏 $(key +" div").hide(); //將元件下的第一個Div顯示 $(key +" ul+div").show(); //取得li的id var _text = $(ele), _id = _text.attr("id") || ""; //當li被點擊的時候 $("#"+_id).click(function(){ //取得a標籤的href屬性值 var _href=$("#"+_id+" a").attr("href"); //遍歷元件下的Div標籤 $(key +" div").each(function(i, ele){ //獲取元件下Div的ID屬性值 var _text2 = $(ele), _id2 = _text2.attr("id") || ""; //判斷a標籤的href屬性值是否等於Div標籤的ID屬性值 if(_href=="#"+_id2){ //條件成立的話顯示該DIV區塊 $("#"+_id2).show(); }else{ //否則隱藏該DIV區塊 $("#"+_id2).hide(); } }); }); }); }
完成Tabs的function後,接下來要怎麼樣呼叫呢? 請參考下面的Code呼叫
tabs("#tabs");
是的不要懷疑當完成Tabs的function後呼叫就是這麼方便,
給他要變成Tab的Div區塊ID屬性值就對了
Dome
See the Pen Tabs標籤元件 by jen (@jen_huang) on CodePen.
非常感謝大家今天的收看,今天的Coding就到這邊節目即將要結束了,若有任何的指教歡迎留言,
就讓我們期待下次的再次相逢 謝謝~再會!!
沒有留言:
張貼留言