13.jQuery UI 选项卡UI






   选项卡(tab),是一种能提供给用户在同一个页面切换不同内容的UI。尤其是在页面布

局紧凑的页面上,提供了非常好的用户体验。






一.使用tabs


html : 


<div id="tabs">

   <ul>

      <li><a href="#tabs1">tab1</a></li>
      <li><a href="#tabs2">tab2</a></li>
      <li><a href="#tabs3">tab3</a></li>

   </ul>

<div id="tabs1">tab1-content</div>

<div id="tabs2">tab2-content</div>

<div id="tabs3">tab3-content</div>

</div>



jQuery : 


$('#tabs').tabs();







二.修改tabs 样式

   在弹出的tabs 对话框中,在火狐浏览器中打开Firebug 或者右击->查看元素。这样,

可以看看tabs 的样式,根据样式进行修改。为了和网站主题符合,对tabs 的标题背景进行

修改。


//无须修改ui 里的CSS,直接用style.css 替代掉
.ui-widget-header {

   background:url(../img/xxx.png);

}


//去掉外边框
#tabs {

   border:none;

}



//内容区域修饰
#tabs1, #tabs2, #tabs3 {

   height:100px;

   padding:10px;

   border:1px solid #aaa;

   border-top:none;

   position:relative;

   top:-2px;

}






三.tabs()方法的属性

   选项卡方法有两种形式:1.tabs(options),options 是以对象键值对的形式传参,

每个键值对表示一个选项;2.tabs('action', param),action 是操作选项卡方法的

字符串,param 则是options 的某个选项。





tabs 外观选项
属性
默认值/类型
说明
collapsible
false/布尔值
当设置为true 是,允许选项卡折叠对应的内容。
默认值为false,不会关闭对应内容
disabled
无/数组
使用数组来指定禁用哪个选项卡的索引,比如:
[0,1]来禁用前两个选项卡
event
click/字符串
触发tab 的事件类型,默认为click。可以设置
mouseover 等其他鼠标事件
active
数组和布尔值
如果是数组,初始化时默认显示哪个tab,默认值
为0。如果是布尔值,那么默认是否折叠。条件
必须是collapsible 值为true
heightStyle
content/字符串
默认为content,即根据内容伸展高度。Auto 则自
动根据最高的那个为基准,fill 则是填充一定的可
用高度
show
false 布尔值
切换选项卡时,默认采用淡入效果
hide
false 布尔值
切换选项卡时,默认采用淡出效果




$('#tabs').tabs({

   collapsible : true,

   disabled : [0],

   event : 'mouseover',

   active : false,

   heightStyle : 'content',

   hide : true,

   show : true,

});




注意:设置true 后,默认为淡入淡出,如果想使用别的特效,可以使用以下表格中的字符串

参数。




show 和hide 可选特效
特效名称
说明
blind
对话框从顶部显示或消失
bounce
对话框断断续续地显示或消失,垂直运动
clip
对话框从中心垂直地显示或消失
slide
对话框从左边显示或消失
drop
对话框从左边显示或消失,有透明度变化
fold
对话框从左上角显示或消失
highlight
对话框显示或消失,伴随着透明度和背景色的变化
puff
对话框从中心开始缩放。显示时“收缩”,消失时“生长”
scale
对话框从中心开始缩放。显示时“生长”,消失时“收缩”
pulsate
对话框以闪烁形式显示或消失






四.tabs()方法的事件

   除了属性设置外,tabs()方法也提供了大量的事件。这些事件可以给各种不同状态时提供回

函数。



tab 事件选项
事件名
说明
create
当创建一个选项卡时激活此事件。该方法有两个参数
(event, ui),ui 参数有两个子属性tab 和panel,得到当前
活动卡和内容选项的对象
activate
当切换一个活动卡时,启动此事件。该方法有两个参数
(event, ui),ui 参数有四个子属性newTab、newPanel、
oldTab,oldPanel。分别得到的时候新tab 对象、新内容
对象、旧tab 对象和旧内容对象
beforeActivate
当切换一个活动卡之前,启动此事件。该方法有两个参
数(event, ui),ui 参数有四个子属性newTab、newPanel、
oldTab,oldPanel。分别得到的时候新tab 对象、新内容
对象、旧tab 对象和旧内容对象
load
当ajax 加载一个文档后激活此事件。该方法有两个参数
(event, ui),ui 参数有两个子属性tab 和panel,得到当前
活动卡和内容选项的对象
beforeLoad
当ajax 加载一个文档前激活此事件。该方法有两个参数
(event, ui),ui 参数有四个子属性tab 和panel 以及jqXHR
和ajaxSettings,前两个得到当前活动卡和内容选项的对
象,后两个是ajax 操作对象




//当选项卡创建时触发
$('#tabs').tabs({

   create : function (event, ui) {

      alert($(ui.tab.get()).html());

      alert($(ui.panel.get()).html());

   },
});

//当切换到一个活动卡时触发
$('#tabs').tabs({

   activate : function (event, ui) {

      alert($(ui.oldTab.get()).html());

      alert($(ui.oldPanel.get()).html());

      alert($(ui.newTab.get()).html());

      alert($(ui.newPanel.get()).html());

   },

});

//当切换到一个活动卡之前触发
$('#tabs').tabs({

   beforeActivate : function (event, ui) {

      alert($(ui.oldTab.get()).html());

      alert($(ui.oldPanel.get()).html());

      alert($(ui.newTab.get()).html());

      alert($(ui.newPanel.get()).html());

   },

});




ajax 调用的基本方法



html : 


<ul>

   <li><a href="tabs1.html">tab1</a></li>
   <li><a href="tabs2.html">tab2</a></li>
   <li><a href="tabs3.html">tab3</a></li>

</ul>




而tabs1.html、tabs2.html 和tabs3.html 只要书写即可,无须包含<div>。比如:


tabs1-content





//ajax 加载后触发
$('#tabs').tabs({

   load : function (event, ui) {

      alert('ajax 加载后触发!');

   }

});

//ajax 加载前触发
$('#tabs').tabs({

   beforeLoad : function (event, ui) {

      ui.ajaxSettings.url = 'tabs2.html';

      ui.jqXHR.success(function (responseText) {

         alert(responseText);

      });

   }

});




tabs('action', param)方法
方法
返回值
说明
tabs('disable')
jQuery 对象
禁用选项卡
tabs('enable')
jQuery 对象
启用选项卡
tabs('load')
jQuery 对象
通过ajax 获取选项卡内容
tabs('widget')
jQuery 对象
获取选项卡的jQuery 对象
tabs('destroy')
jQuery 对象
删除选项卡,直接阻断了tabs
tabs('refresh')
jQuery 对象
更新选项卡,比如高度
tabs('option', param)
一般值
获取options 属性的值
tabs('option', param, value)
jQuery 对象
设置options 属性的值




//禁用选项卡
$('#tabs').tabs('disable');        //$('#tabs').tabs('disable', 0);

//启用选项卡
$('#tabs').tabs('enable');          //$('#tabs').tabs('enable', 0);

//获取选项卡jQuery 对象
$('#tabs').tabs('widget');

//更新选项卡
$('#tabs').tabs('refresh');

//删除tabs 选项卡
$('#tabs').tabs('destroy');

//重载指定选项卡内容
$('#button').click(function () {

   $('#tabs').tabs('load', 0);

});

//得到tabs 的options 值
alert($('#tabs').tabs('option', 'active'));

//设置tabs 的options 值
$('#tabs').tabs('option', 'active', 1);







五.tabs 中使用on()

   在tabs 的事件中,提供了使用on()方法处理的事件方法。



on()方法触发的选项卡事件
特效名称
说明
tabsload
Ajax 加载后触发
tabsbeforeload
Ajax 加载前触发
tabsactivate
选项卡切换时触发
tabsbeforeactivate
选项卡切换前触发





//ajax 加载后触发
$('#tabs').on('tabsload', function () {

   alert('ajax 加载后触发!');

});

//ajax 加载前触发
$('#tabs').on('tabsbeforeload', function () {

   alert('ajax 加载前触发!');

});

//选项卡切换时触发
$('#tabs').on('tabsactivate', function () {

   alert('选项卡切换时触发!');

});

//选项卡切换前触发
$('#tabs').on('tabsbeforeactivate ', function () {

    alert('选项卡切换前触发!');

});


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值