关于Tab(选项卡)的一些实现方式
对于这个功能,我想大家都不陌生。最初是在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"; } }
一段很简单的代码,注释我就不写了,但功能去很强大。可以很方便的添加多个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>如果我们要添加多个,只需要把上面的one1改成two1,con_one_1改成con_two_1就行了,这样就能很方便的
为你的页面添加多个TAB,就像我的侧边栏。
好了,最后我们来看下运行效果。
< !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" >
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=gb2312" />
<title>简洁Tab</title>
<style type="text/css">
<!--
body,div,ul,li{
padding:0;
text-align:center;
}
body{
font:12px "宋体";
text-align:center;
}
a:link{
color:#00F;
text-decoration:none;
}
a:visited {
color: #00F;
text-decoration:none;
}
a:hover {
color: #c00;
text-decoration:underline;
}
ul{ list-style:none;}
/*菜单class*/
.Menubox {
width:50%;
background:url(http://www.hxcgw.com/bbs/upfile/20079299441652.gif);
height:28px;
line-height:28px;
}
.Menubox ul{
margin:0px;
padding:0px;
}
.Menubox li{
float:left;
display:block;
cursor:pointer;
width:114px;
text-align:center;
color:#949694;
font-weight:bold;
}
.Menubox li.hover{
padding:0px;
background:#fff;
width:116px;
border-left:1px solid #A8C29F;
border-top:1px solid #A8C29F;
border-right:1px solid #A8C29F;
background:url(http://www.hxcgw.com/bbs/upfile/200792994426548.gif);
color:#739242;
font-weight:bold;
height:27px;
line-height:27px;
}
.Contentbox{
width: 50%;
clear:both;
margin-top:0px;
border:1px solid #A8C29F;
border-top:none;
height:181px;
text-align:center;
padding-top:8px;
}
-->
</style>
<script>
<!--
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?"hover":"";
con.style.display=i==cursel?"block":"none";
}
}
//-->
</script>
</head>
<body>
<br /><br />
<div class="Menubox">
<ul>
<li id="one1" onmouseover="setTab('one',1,4)" >新闻1</li>
<li id="one2" onmouseover="setTab('one',2,4)" class="hover">新闻2</li>
<li id="one3" onmouseover="setTab('one',3,4)">新闻3</li>
<li id="one4" onmouseover="setTab('one',4,4)">新闻4</li>
</ul>
</div>
<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 id="con_one_4" style="display:none">新闻列表4</div>
</div>
<br />
<div class="Menubox">
<ul>
<li id="two1" onClick="setTab('two',1,4)" class="hover">新闻1</li>
<li id="two2" onClick="setTab('two',2,4)" >新闻2</li>
<li id="two3" onClick="setTab('two',3,4)">新闻3</li>
<li id="two4" onClick="setTab('two',4,4)">新闻4</li>
</ul>
</div>
<div class="Contentbox">
<div id="con_two_1" >新闻列表1</div>
<div id="con_two_2" style="display:none">新闻列表2</div>
<div id="con_two_3" style="display:none">新闻列表3</div>
<div id="con_two_4" style="display:none">新闻列表4</div>
</div>
<br />
<div class="Menubox">
<ul>
<li id="three1" onClick="setTab('three',1,3)" class="hover">新闻1</li>
<li id="three2" onClick="setTab('three',2,3)" >新闻2</li>
<li id="three3" onClick="setTab('three',3,3)">新闻3</li>
</ul>
</div>
<div class="Contentbox">
<div id="con_three_1" >新闻列表1</div>
<div id="con_three_2" style="display:none">新闻列表2</div>
<div id="con_three_3" style="display:none">新闻列表3</div>
</div>
<br />
<div class="Menubox">
<ul>
<li id="four1" onClick="setTab('four',1,3)" class="hover">新闻1</li>
<li id="four2" onClick="setTab('four',2,3)" >新闻2</li>
<li id="four3" onClick="setTab('four',3,3)">新闻3</li>
</ul>
</div>
<div class="Contentbox">
<div id="con_four_1" >新闻列表1</div>
<div id="con_four_2" style="display:none">新闻列表2</div>
<div id="con_four_3" style="display:none">新闻列表3</div>
</div>
</body>
</html>





Recent Comments