jquery tools系列(一)——tabs(选项卡/页签)

jquery用这么久了,觉得虽然没ExtJS等框架全面,功能强大,但是也确实做到了“the write less,do more”,而且学起来也方便,只需要仔细研读一下它官方网站的API Reference,操作起来基本问题不是太大。

       虽然方便好用,但是个人觉得其在UI方面的表现不是太出彩,今天无意中看到jquery tools-- 一种基于jquery的UI表现框架,其UI功能展示风格类似(或模仿)flex。该框架提供了tabs(选项卡/页签)overlay(覆盖 层),tooltip(提示框),scrollable(滚动信息栏),expose(突出显示),flahembed(视频播放嵌入)六大类功能(其官 方网站自称为六大工具),这六大类功能又是每个功能都有自己的独立支持包,不相互干扰,用户完全可以跟据自己需要下载,这样就减少了js文件下载对页面加 载速度的影响。虽然功能不是很全面,但是可称得上少而精--都是目前比较常用的功能,而且能很好的弥补jquery ui的一些不足,从一定程度上加强了Jquery的UI功能。其实最让我觉得欣赏的是那些类flex的风格,能在有效控制开发成本的情况下大大增强用户感 受。

      今天仔细看了jquery tools 的tabs,下面结合其官方doucmentation做一下总结。

     首先给出操作的目标html代码:

[c-sharp:showcolumns] view plain copy
·········10········20········30········40········50········60········70········80········90········100·······110·······120·······130·······140·······150
  1. <body>  
  2.  <ul class="tabs-t">  
  3.   <li><a href="#first" mce_href="#first">tab1</a></li>  
  4.   <li><a href="#second" mce_href="#second">tab2</a></li>  
  5.   <li><a href="#third" mce_href="#third">tab3</a></li>  
  6.  </ul>  
  7.    
  8.  <div class="tabsContent ">  
  9.   <div>  
  10.    <p>  
  11.    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.   
  12.   </p>  
  13.    tabl content<a href="#second" mce_href="#second">open table2</a></div>  
  14.   <div>  
  15.     <p>  
  16.      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.   
  17.     </p>  
  18.    tab2 content<a href="#third" mce_href="#third">open table3</a></div>  
  19.   <div>  
  20.    <p>  
  21.      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.   
  22.     </p>  
  23.    tab3 content</div>  
  24.     
  25.  </div>  
  26. </body>   
 

     该功能是通过jqueryObject.tabs()方法来实现的,其中tabs方法提供以下三种方式:

 

[javascript:showcolumns] view plain copy
·········10········20········30········40········50········60········70········80········90········100·······110·······120·······130·······140·······150
  1. 1. $("ul.tabs-t").tabs("div.tabsContent>div")//该方法能简单的将tabs组织起来  
  2.       2.  $("ul.tabs-t").tabs("div.tabsContent>div" ,{config object}) //该方法通过配置对象将tabs组织起来,适合多样的tabs展示。  
  3.       3.  $("ul.tabs-t").tabs("div.tabsContent>div" ,callback function//通过回调函数对tabs进行进一步操作。  
  4.      下面就2中的config对象参数实现及描述做一下说明:  
  5. current:'current',//为当前tab的增加的class名称,默认为current  
  6.     effect:"fade",//每个tab的panel内容显示方式为从整体逐渐显示  
  7.     //effect:"slide",//点击tab的panel出现在当前tab的panel下面,并覆盖掉当前panel  
  8.     //effect:"horizontal",//当前tab的panel逐渐从右向左收缩并最终消失,点击panel的内容占据相应位置,比较适合水平导航  
  9.     fadeInSpeed:1000,//设置panel显示的速度,设置该属性在effect置为fade时有效,默认值为200毫秒  
  10.     event:"mouseover",//指定触发tab切换的事件,默认是单击鼠标,可选择的触发事件有“mouseover”,"dbclick"  
  11.     history:true,//类似javascript的history功能,默认为false,当用户点击浏览器的前进后后退按钮后,如果此处设置为true,那么就会回退到上次点击的tab,而不是跳转到其他页面去  
  12.     initialIndex:1,//设置默认显示的tab  
  13.     tabs:"a",//设置tab对应的标签元素,默认为"a",这里也可以设为"li",该处相当于jquery的选择器  
  14.     api:false,//设置当前tab所在容器的返回类型类型。如果为false(默认值),以jquery对象返回;否则,以js对象返回。如果存在多个值,返回最后一个值。  
  15.     onBeforeClick:function( index){  
  16.      //alert(this.getCurrentTab().text());//返回当前tab的名称  
  17.      return true;  
  18.     },//在tab被点击之前调用的函数,如果该函数返回false,那么该tab不会被触发;返回的是一个tab对象,对于该对象的操作,参见tab相关方法;改返回函数有一个参数,为当前tab的索引  
  19.     onClick:function(index){  
  20.      return true;  
  21.     }//在tab被点击的时候调用的函数,其他用法同onBeforeClick  

 

更直观的说明如下:
属性名称默认值描述
current
'current'
为当前tab的增加的class名称
effect
default'
fade':每个tab的panel内容显示方式为从整体逐渐显示;面,并覆盖掉当前panel
  'slide':点击tab的panel出现在当前tab的panel下
  horizontal':当前tab的panel逐渐从右向左收缩并最终消失,点击panel的内容占据相应位置,比较适合水平导航
fadeInSpeed
200
设置panel显示的速度,设置该属性在effect置为fade时有效,默认值为200毫秒
event
'click'
指定触发tab切换的事件,默认是单击鼠标,可选择的触发事件有“mouseover”,"dbclick"
historyFALSE类似javascript的history功能当用户点击浏览器的前进后后退按钮后,如果此处设置为true,那么就会回退到上次点击的tab,而不是跳转到其他页面去
initialIndex
0
设置默认显示的tab
tabs
a'
设置tab对应的标签元素,默认为"a",这里也可以设为"li",该处相当于jquery的选择器
api
FALSE
设置当前tab所在容器的返回类型类型。如果为false(默认值),以jquery对象返回;否则,以js对象返回。如果存在多个值,返回最后一个值。
onBeforeClick
null
在tab被点击之前调用的函数,如果该函数返回false,那么该tab不会被触发;返回的是一个tab对象,对于该对象的操作,参见tab相关方法;改返回函数有一个参数,为当前tab的索引
onClick
null
在tab被点击的时候调用的函数,其他用法同onBeforeClick

 

      此外,tabs也提供了获取tabs的一系列方法,具体实现及说明如下:

[javascript:showcolumns] view plain copy
·········10········20········30········40········50········60········70········80········90········100·······110·······120·······130·······140·······150
  1. var api=$("ul.tabs-t").tabs();//先通过获取tab容器获取tab  
  2.    //api.next();//跳转到下一个tab  
  3.    //api.click();  
  4.    //alert(api.getConf().tabs);//返回api的配置对象,这里获取配置对象的tabs属性的值  
  5.    api.getCurrentPane();//获取当前的panel  
  6.    api.getCurrentTab();//获取当前tab  
  7.    api.getIndex();//获取当前tab的index  
  8.    //alert(api.getPanes());//获取所有的panel  
  9.    //alert(api.getTabs());//获取所有的tab  
  10.    api.prev();//跳转到上一个tab  
  11.    api.onBeforeClick=function(){  
  12.     return true;  
  13.    }//同配置对象的BeforeClick,一个对象可以绑定多个Beforeclick事件  
  14.    api.onClick=function(){  
  15.     return true;  
  16.    }//同配置对象的Click,一个对象可以绑定多个Beforeclick事件  
 

 更直观的说明如下:

 

方法返回值描述
getConf()
API
返回api的配置对象
getCurrentPane()
jQuery
获取当前的panel
getCurrentTab()
jQuery
获取当前tab
getIndex()
integer
获取当前tab的index
getTabs()
jQuery
获取所有的tab
getPanes()
jQuery
获取所有的panel
next()
API
跳转到下一个tab
prev()
API
跳转到上一个tab
onBeforeClick()
API
同配置对象的BeforeClick,一个对象可以绑定多个Beforeclick事件
onClick()
API
//同配置对象的Click,一个对象可以绑定多个Beforeclick事件

转载于:https://www.cnblogs.com/piuba/archive/2012/07/30/2615636.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值