| 測試環境 | |
| 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就到這邊節目即將要結束了,若有任何的指教歡迎留言,
就讓我們期待下次的再次相逢 謝謝~再會!!
沒有留言:
張貼留言