Home > Internet > 关于Tab(选项卡)的一些实现方式
2009April . 3rd

关于Tab(选项卡)的一些实现方式

对于这个功能,我想大家都不陌生。最初是在zEUS的DZTHEME上见到,后来慢慢的很多人都开始喜欢这种做法,因为这样做有很多好处,最明显的就是在有限的地方放更多的内容。当然这不是我今天要说的主要内容,今天谈的是怎么实现,哪种实现方式更好。

其实最近看了很多关于TABS的文章,大家的实现方式都不一样,但效果是一样,今天又在城讪@后上看到了他的”为你的博客轻松添加Tabs选项卡切换效果“,所以才想写这篇文章的。

我们现在看下效果图。

sidebar

现在我们来一步一步实现它。首先我们看下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>
推荐到豆瓣
  1. No comments yet.

Subscriber selector

Close