tab 控件 spry和idtabs 比较

今天分别使用了spryidTabs .感觉都还可以,如果配合dreamweaver cs3,那spry更方便快速。

spry使用参见css彻底研究12.3。 spry tab本身不大,css也不大。

示例:

var TabbedPanels1 = new Spry.Widget.TabbedPanels("TabbedPanels1");

这就行了,TabbedPanels1是个容器div,包含了tab菜单和tab内容。它是通过容器div里面第一个子节点为tab菜单,第二个子节点为tab内容。菜单与内容必须一一对应。

若要使鼠标hover时就显示tab需要在tab菜单元素上添加onmouseover="TabbedPanels1.showPanel(1)",这样写不是很好。

 

再来看idTabs,

它的布局和spry类似,我直接使用上面spry的结构和css,

使用示例:

$(function(){
				var ops = {
					event:'!mouseover',//when mouseover will go to that tab, default is click
					start:1, //start tab is 2nd(0 start index)
					click: function(id,list,set){
						//id  is the target id like #tab1
						//list is the target tab contents
						//set is the tab menu selector
						$('li',set).removeClass('TabbedPanelsTabSelected');
						$(this).parent().addClass('TabbedPanelsTabSelected');				
						return true;
					}
				};
				var s = $("#TabbedPanels1 ul");
				console.log(s);
				s.idTabs(ops);
			});	

此例中,选择#TabbedPanels1 ul中的a标记(这是idTabs要求的),它只支持a标记作为菜单项,并使用href属性作为跳转目标。

我直接使用spry生成的css, 出现问题,由于idTabs是将selected样式添加到a标签上,而一般a上面的li元素也需要改变选择样式。故代码中使用javascript来处理:

$('li',set).removeClass('TabbedPanelsTabSelected'); //将其他项设置为未选中

$(this).parent().addClass('TabbedPanelsTabSelected'); //将a父元素li的样式设置为'TabbedPanelsTabSelected'

这样就行了。

插件使用很简单,主要是漂亮的样式需要设计。

这是效果图:

Snap1

另外我尝试了jquery-ui的tabs,它需要引用其样式,故不很理想。


Total views.

© 2013 - 2024. All rights reserved.

Powered by Hydejack v6.6.1