关于Tab(选项卡)的一些实现方式
周二,2008 十 28 22:53:48
对于这个功能,我想大家都不陌生。最初是在zEUS的DZTHEME上见到,后来慢慢的很多人都开始喜欢这种做法,因为这样做有很多好处,最明显的就是在有限的地方放更多的内容。当然这不是我今天要说的主要内容,今天谈的是怎么实现,哪种实现方式更好。
其实最近看了很多关于TABS的文章,大家的实现方式都不一样,但效果是一样,今天又在城讪@后上看到了他的”为你的博客轻松添加Tabs选项卡切换效果“,所以才想写这篇文章的。
我们现在看下效果图。

现在我们来一步一步实现它。首先我们看下JavaScript代码:
function setTab(name,cursel,n){
for(i=1;i<=n;i++){
var menu=document.getElementById(name+i);
var con=document.getElementById("con_"+name+"_"+i);
menu.className=i==cursel?"current_sidebar":"";
con.style.display=i==cursel?"block":"none";
}
}
for(i=1;i<=n;i++){
var menu=document.getElementById(name+i);
var con=document.getElementById("con_"+name+"_"+i);
menu.className=i==cursel?"current_sidebar":"";
con.style.display=i==cursel?"block":"none";
}
}
一段很简单的代码,注释我就不写了,但功能去很强大。可以很方便的添加多个TAB,只需修改ID名就行。
我们看下实际:
<div class="Menubox">
<ul>
<li id="one1" onmouseover="setTab('one',1,3)">Tab1</li>
<li id="one2" class="hover" onmouseover="setTab('one',2,3)">Tab2</li>
<li id="one3" onmouseover="setTab('one',3,3)">Tab3</li>
</ul>
<div class="Contentbox">
<div id="con_one_1">新闻列表1</div>
<div id="con_one_2" style="display:none">新闻列表2</div>
<div id="con_one_3" style="display:none">新闻列表3</div>
</div>
</div>
<ul>
<li id="one1" onmouseover="setTab('one',1,3)">Tab1</li>
<li id="one2" class="hover" onmouseover="setTab('one',2,3)">Tab2</li>
<li id="one3" onmouseover="setTab('one',3,3)">Tab3</li>
</ul>
<div class="Contentbox">
<div id="con_one_1">新闻列表1</div>
<div id="con_one_2" style="display:none">新闻列表2</div>
<div id="con_one_3" style="display:none">新闻列表3</div>
</div>
</div>
如果我们要添加多个,只需要把上面的one1改成two1,con_one_1改成con_two_1就行了,这样就能很方便的
为你的页面添加多个TAB,就像我的侧边栏。
好了,最后我们来看下运行效果。
提示:你可以先修改部分代码再运行。



这种效果特别适合大型信息门户类网站可以放很多东西。必须学会用。
good teaching
很早以前我就是这么实现的.js是少,但是Html却多了一些冗余代码.可以用dom检索tab数量,然后把onclick事件写到js里,只需要多出为数不多的代码都可以让html干净又整洁.尤其在一个页面有多个tab切换的情况下.
例如这样的例子:
晕,你的评论限制的太厉害了.直接看网站好了.
很强大啊,你那个排行怎么做的?能指点下吗