jquery tools之tabs 選項卡/頁簽
更新時間:2009年07月25日 14:46:36 作者:
jquery用這么久了,覺得雖然沒ExtJS等框架全面,功能強大,但是也確實做到了“the write less,do more”,而且學起來也方便,只需要仔細研讀一下它官方網(wǎng)站的API Reference,操作起來基本問題不是太大。
雖然方便好用,但是個人覺得其在UI方面的表現(xiàn)不是太出彩,今天無意中看到jquery tools--一種基于jquery的UI表現(xiàn)框架,其UI功能展示風格類似(或模仿)flex。該框架提供了tabs(選項卡/頁簽)overlay(覆蓋層),tooltip(提示框),scrollable(滾動信息欄),expose(突出顯示),flahembed(視頻播放嵌入)六大類功能(其官方網(wǎng)站自稱為六大工具),這六大類功能又是每個功能都有自己的獨立支持包,不相互干擾,用戶完全可以跟據(jù)自己需要下載,這樣就減少了js文件下載對頁面加載速度的影響。雖然功能不是很全面,但是可稱得上少而精--都是目前比較常用的功能,而且能很好的彌補jquery ui的一些不足,從一定程度上加強了Jquery的UI功能。其實最讓我覺得欣賞的是那些類flex的風格,能在有效控制開發(fā)成本的情況下大大增強用戶感受。
今天仔細看了jquery tools 的tabs,下面結(jié)合其官方doucmentation做一下總結(jié)。
首先給出操作的目標html代碼:
<body>
<ul class="tabs-t">
<li><a href="#first">tab1</a></li>
<li><a href="#second">tab2</a></li>
<li><a href="#third">tab3</a></li>
</ul>
<div class="tabsContent ">
<div>
<p>
Here you can see tabs in action. They are the most popular user-interface component on the web. And for good reason: they are intuitive to use, people are used to them, and above all your can organize your pages more friendly.
</p>
tabl content<a href="#second">open table2</a></div>
<div>
<p>
Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Sed lorem. Aenean commodo pede a eros volutpat viverra. Pellentesque a nisl. Nullam et metus.
</p>
tab2 content<a href="#third">open table3</a></div>
<div>
<p>
Praesent dictum, velit vel adipiscing suscipit, metus nisl lobortis sem, nec elementum nibh urna non turpis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae.
</p>
tab3 content</div>
</div>
</body>
該功能是通過jqueryObject.tabs()方法來實現(xiàn)的,其中tabs方法提供以下三種方式:
1. $("ul.tabs-t").tabs("div.tabsContent>div")//該方法能簡單的將tabs組織起來
2. $("ul.tabs-t").tabs("div.tabsContent>div" ,{config object}) //該方法通過配置對象將tabs組織起來,適合多樣的tabs展示。
3. $("ul.tabs-t").tabs("div.tabsContent>div" ,callback function) //通過回調(diào)函數(shù)對tabs進行進一步操作。
下面就2中的config對象參數(shù)實現(xiàn)及描述做一下說明:
current:'current',//為當前tab的增加的class名稱,默認為current
effect:"fade",//每個tab的panel內(nèi)容顯示方式為從整體逐漸顯示
//effect:"slide",//點擊tab的panel出現(xiàn)在當前tab的panel下面,并覆蓋掉當前panel
//effect:"horizontal",//當前tab的panel逐漸從右向左收縮并最終消失,點擊panel的內(nèi)容占據(jù)相應位置,比較適合水平導航
fadeInSpeed:1000,//設置panel顯示的速度,設置該屬性在effect置為fade時有效,默認值為200毫秒
event:"mouseover",//指定觸發(fā)tab切換的事件,默認是單擊鼠標,可選擇的觸發(fā)事件有“mouseover”,"dbclick"
history:true,//類似javascript的history功能,默認為false,當用戶點擊瀏覽器的前進后后退按鈕后,如果此處設置為true,那么就會回退到上次點擊的tab,而不是跳轉(zhuǎn)到其他頁面去
initialIndex:1,//設置默認顯示的tab
tabs:"a",//設置tab對應的標簽元素,默認為"a",這里也可以設為"li",該處相當于jquery的選擇器
api:false,//設置當前tab所在容器的返回類型類型。如果為false(默認值),以jquery對象返回;否則,以js對象返回。如果存在多個值,返回最后一個值。
onBeforeClick:function( index){
//alert(this.getCurrentTab().text());//返回當前tab的名稱
return true;
},//在tab被點擊之前調(diào)用的函數(shù),如果該函數(shù)返回false,那么該tab不會被觸發(fā);返回的是一個tab對象,對于該對象的操作,參見tab相關(guān)方法;改返回函數(shù)有一個參數(shù),為當前tab的索引
onClick:function(index){
return true;
}//在tab被點擊的時候調(diào)用的函數(shù),其他用法同onBeforeClick
此外,tabs也提供了獲取tabs的一系列方法,具體實現(xiàn)及說明如下:
var api=$("ul.tabs-t").tabs();//先通過獲取tab容器獲取tab
//api.next();//跳轉(zhuǎn)到下一個tab
//api.click();
//alert(api.getConf().tabs);//返回api的配置對象,這里獲取配置對象的tabs屬性的值
api.getCurrentPane();//獲取當前的panel
api.getCurrentTab();//獲取當前tab
api.getIndex();//獲取當前tab的index
//alert(api.getPanes());//獲取所有的panel
//alert(api.getTabs());//獲取所有的tab
api.prev();//跳轉(zhuǎn)到上一個tab
api.onBeforeClick=function(){
return true;
}//同配置對象的BeforeClick,一個對象可以綁定多個Beforeclick事件
api.onClick=function(){
return true;
}//同配置對象的Click,一個對象可以綁定多個Beforeclick事件
今天仔細看了jquery tools 的tabs,下面結(jié)合其官方doucmentation做一下總結(jié)。
首先給出操作的目標html代碼:
復制代碼 代碼如下:
<body>
<ul class="tabs-t">
<li><a href="#first">tab1</a></li>
<li><a href="#second">tab2</a></li>
<li><a href="#third">tab3</a></li>
</ul>
<div class="tabsContent ">
<div>
<p>
Here you can see tabs in action. They are the most popular user-interface component on the web. And for good reason: they are intuitive to use, people are used to them, and above all your can organize your pages more friendly.
</p>
tabl content<a href="#second">open table2</a></div>
<div>
<p>
Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Sed lorem. Aenean commodo pede a eros volutpat viverra. Pellentesque a nisl. Nullam et metus.
</p>
tab2 content<a href="#third">open table3</a></div>
<div>
<p>
Praesent dictum, velit vel adipiscing suscipit, metus nisl lobortis sem, nec elementum nibh urna non turpis. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae.
</p>
tab3 content</div>
</div>
</body>
該功能是通過jqueryObject.tabs()方法來實現(xiàn)的,其中tabs方法提供以下三種方式:
1. $("ul.tabs-t").tabs("div.tabsContent>div")//該方法能簡單的將tabs組織起來
2. $("ul.tabs-t").tabs("div.tabsContent>div" ,{config object}) //該方法通過配置對象將tabs組織起來,適合多樣的tabs展示。
3. $("ul.tabs-t").tabs("div.tabsContent>div" ,callback function) //通過回調(diào)函數(shù)對tabs進行進一步操作。
下面就2中的config對象參數(shù)實現(xiàn)及描述做一下說明:
復制代碼 代碼如下:
current:'current',//為當前tab的增加的class名稱,默認為current
effect:"fade",//每個tab的panel內(nèi)容顯示方式為從整體逐漸顯示
//effect:"slide",//點擊tab的panel出現(xiàn)在當前tab的panel下面,并覆蓋掉當前panel
//effect:"horizontal",//當前tab的panel逐漸從右向左收縮并最終消失,點擊panel的內(nèi)容占據(jù)相應位置,比較適合水平導航
fadeInSpeed:1000,//設置panel顯示的速度,設置該屬性在effect置為fade時有效,默認值為200毫秒
event:"mouseover",//指定觸發(fā)tab切換的事件,默認是單擊鼠標,可選擇的觸發(fā)事件有“mouseover”,"dbclick"
history:true,//類似javascript的history功能,默認為false,當用戶點擊瀏覽器的前進后后退按鈕后,如果此處設置為true,那么就會回退到上次點擊的tab,而不是跳轉(zhuǎn)到其他頁面去
initialIndex:1,//設置默認顯示的tab
tabs:"a",//設置tab對應的標簽元素,默認為"a",這里也可以設為"li",該處相當于jquery的選擇器
api:false,//設置當前tab所在容器的返回類型類型。如果為false(默認值),以jquery對象返回;否則,以js對象返回。如果存在多個值,返回最后一個值。
onBeforeClick:function( index){
//alert(this.getCurrentTab().text());//返回當前tab的名稱
return true;
},//在tab被點擊之前調(diào)用的函數(shù),如果該函數(shù)返回false,那么該tab不會被觸發(fā);返回的是一個tab對象,對于該對象的操作,參見tab相關(guān)方法;改返回函數(shù)有一個參數(shù),為當前tab的索引
onClick:function(index){
return true;
}//在tab被點擊的時候調(diào)用的函數(shù),其他用法同onBeforeClick
更直觀的說明如下:
屬性名稱 | 默認值 | 描述 |
current |
'current' |
為當前tab的增加的class名稱 |
effect |
default' |
fade':每個tab的panel內(nèi)容顯示方式為從整體逐漸顯示;面,并覆蓋掉當前panel |
'slide':點擊tab的panel出現(xiàn)在當前tab的panel下 | ||
horizontal':當前tab的panel逐漸從右向左收縮并最終消失,點擊panel的內(nèi)容占據(jù)相應位置,比較適合水平導航 | ||
fadeInSpeed |
200 |
設置panel顯示的速度,設置該屬性在effect置為fade時有效,默認值為200毫秒 |
event |
'click' |
指定觸發(fā)tab切換的事件,默認是單擊鼠標,可選擇的觸發(fā)事件有“mouseover”,"dbclick" |
history | FALSE | 類似javas |
initialIndex |
0 |
設置默認顯示的tab |
tabs |
a' |
設置tab對應的標簽元素,默認為"a",這里也可以設為"li",該處相當于jquery的選擇器 |
api |
FALSE |
設置當前tab所在容器的返回類型類型。如果為false(默認值),以jquery對象返回;否則,以js對象返回。如果存在多個值,返回最后一個值。 |
on |
null |
在tab被點擊之前調(diào)用的函數(shù),如果該函數(shù)返回false,那么該tab不會被觸發(fā);返回的是一個tab對象,對于該對象的操作,參見tab相關(guān)方法;改返回函數(shù)有一個參數(shù),為當前tab的索引 |
on |
null |
在tab被點擊的時候調(diào)用的函數(shù),其他用法同on |
復制代碼 代碼如下:
var api=$("ul.tabs-t").tabs();//先通過獲取tab容器獲取tab
//api.next();//跳轉(zhuǎn)到下一個tab
//api.click();
//alert(api.getConf().tabs);//返回api的配置對象,這里獲取配置對象的tabs屬性的值
api.getCurrentPane();//獲取當前的panel
api.getCurrentTab();//獲取當前tab
api.getIndex();//獲取當前tab的index
//alert(api.getPanes());//獲取所有的panel
//alert(api.getTabs());//獲取所有的tab
api.prev();//跳轉(zhuǎn)到上一個tab
api.onBeforeClick=function(){
return true;
}//同配置對象的BeforeClick,一個對象可以綁定多個Beforeclick事件
api.onClick=function(){
return true;
}//同配置對象的Click,一個對象可以綁定多個Beforeclick事件
更直觀的說明如下:
方法 | 返回值 | 描述 |
getConf() |
API |
返回api的配置對象 |
getCurrentPane() |
jQuery |
獲取當前的panel |
getCurrentTab() |
jQuery |
獲取當前tab |
getIndex() |
integer |
獲取當前tab的index |
getTabs() |
jQuery |
獲取所有的tab |
getPanes() |
jQuery |
獲取所有的panel |
next() |
API |
跳轉(zhuǎn)到下一個tab |
prev() |
API |
跳轉(zhuǎn)到上一個tab |
on |
API |
同配置對象的BeforeClick,一個對象可以綁定多個Beforeclick事件 |
on |
API |
//同配置對象的Click,一個對象可以綁定多個Beforeclick事件 |
最后,取其官方網(wǎng)站的幾張截圖作為本文的結(jié)尾。
1.普通的tabs
2.水平拓展的tabs
3. 類提示框
相關(guān)文章
jQuery checkbox全選/取消全選實現(xiàn)代碼
用JavaScript使頁面上的一組checkbox全選/取消全選,邏輯很簡單,實現(xiàn)代碼也沒有太難的語法。但使用jQuery實現(xiàn)則更簡單,代碼也很簡潔,精辟!2009-11-11招聘網(wǎng)站基于jQuery實現(xiàn)自動刷新簡歷
本文介紹下招聘網(wǎng)站基于jQuery實現(xiàn)自動刷新簡歷的方法,十分的簡單實用,有需要的朋友,參考下吧2015-05-05jQuery ajax serialize()方法的使用以及常見問題解決
使用ajax時,常常需要拼裝input數(shù)據(jù)為'name=abc&sex=1'這種形式,用JQuery的serialize方法可以輕松的完成這個工作接下來介紹jQuery ajax - serialize() 方法定義和用法,感興趣的朋友可以了解下啊,希望本文對你有所幫助2013-01-01jQuery實現(xiàn)異步獲取json數(shù)據(jù)的2種方式
這篇文章主要介紹了jQuery實現(xiàn)異步獲取json數(shù)據(jù)的2種方式,主要講述了$.getJSON方法與$.ajax方法,非常實用,需要的朋友可以參考下2014-08-08基于Datatables跳轉(zhuǎn)到指定頁的簡單實例
下面小編就為大家?guī)硪黄贒atatables跳轉(zhuǎn)到指定頁的簡單實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-11-11分享28款免費實用的 JQuery 圖片和內(nèi)容滑塊插件
這篇文章主要介紹了分享28款免費實用的 JQuery 圖片和內(nèi)容滑塊插件,需要的朋友可以參考下2014-12-12基于jquery的使ListNav兼容中文首字拼音排序的實現(xiàn)代碼
jQuery的字母排序插件ListNav不支持中文,比較頭疼,最后找到一個取中文首字母的JS函數(shù),再配合ListNav,可以完善支持中文按首字母進行排序。2011-07-07