WEB 门户网站开发常用UI 之Tab

以下代码来自源码爱好者,仅供收藏学习使用。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>选项卡</title>
<style type="text/css">
body{
font-family: arial;
font-size: 12px;
text-align: center;
margin: 0;
}
.nTab{
float: left;
width: 542px;
margin: 0 auto;
border-bottom:1px #C7C7CD solid;
background:#d5d5d5;
background-position:left;
background-repeat:repeat-y;
margin-bottom:2px;
}
.nTab .TabTitle{
clear: both;
height: 26px;
overflow: hidden;
}
.nTab .TabTitle ul{
margin:0;
padding:0;
}
.nTab .TabTitle li{
float: left;
width: 60px;
cursor: pointer;
padding-top: 6px;
padding-right: 0px;
padding-left: 0px;
padding-bottom: 7px;
list-style-type: none;
}
.nTab .TabTitle .active{ background:url(http://www.codefans.net/jscss/demoimg/200905/tab_bg1.gif) left -25px no-repeat;border-left:1px  #C7C7CD solid;border-top:1px  #C7C7CD solid;border-bottom:1px #fff solid;}
.nTab .TabTitle .normal{ background:url(/jscss/demoimg/200905/tab_bg1.gif);border-top:1px #C7C7CD solid;border-bottom:1px #C7C7CD solid;}
.nTab .TabContent{
width:auto;background:#fff;
margin: 0px auto;
padding:10px 0 0 0;
border-right:1px #C7C7CD solid;border-left:1px #C7C7CD solid;
}
.none {display:none;}
</style>
<script type="text/javascript">
function nTabs(thisObj,Num){
if(thisObj.className == "active")return;
var tabObj = thisObj.parentNode.id;
var tabList = document.getElementById(tabObj).getElementsByTagName("li");
for(i=0; i <tabList.length; i++)
{
  if (i == Num)
  {
   thisObj.className = "active"; 
      document.getElementById(tabObj+"_Content"+i).style.display = "block";
  }else{
   tabList[i].className = "normal"; 
   document.getElementById(tabObj+"_Content"+i).style.display = "none";
  }
} 
}
</script>
</head>
<body>
<br />
<br />
<center>
<div style="text-align:center; margin-left:200px;">
<!-- 选项卡开始 -->
  <div class="nTab">
    <!-- 标题开始 -->
    <div class="TabTitle">
      <ul id="myTab0">
        <li class="active" οnclick="nTabs(this,0);">源码首页</li>
        <li class="normal" οnclick="nTabs(this,1);">最新更新</li>
        <li class="normal" οnclick="nTabs(this,2);">下载排行</li>
        <li class="normal" οnclick="nTabs(this,3);">源码分类</li>
        <li class="normal" οnclick="nTabs(this,4);">网页特效</li>
        <li class="normal" οnclick="nTabs(this,5);">ASP源码</li>
<li class="normal" οnclick="nTabs(this,6);">PHP源码</li>
<li class="normal" οnclick="nTabs(this,7);">JSP源码</li>
<li class="normal" οnclick="nTabs(this,8);">JAVA源码</li>
      </ul>
    </div>
    <!-- 内容开始 -->
    <div class="TabContent">
      <div id="myTab0_Content0"> 出自:<a href="/" target="_blank">源码爱好者</a></div>
      <div id="myTab0_Content1" class="none"><a href="/">最新更新</a></div>
      <div id="myTab0_Content2" class="none"><a href="/">下载排行</a></div>
      <div id="myTab0_Content3" class="none"><a href="/">源代码分类</a></div>
      <div id="myTab0_Content4" class="none"><a href="/">网页特效</a></div>
      <div id="myTab0_Content5" class="none"><a href="/">ASP类精品程序</a></div>
<div id="myTab0_Content6" class="none"><a href="/">PHP精品程序</a></div>
<div id="myTab0_Content7" class="none"><a href="/">JSP源码区</a></div>
<div id="myTab0_Content8" class="none"><a href="/">JAVA源码</a></div>
    </div>
  </div>
  <!-- 选项卡结束 -->
  </div>
  </center>
 </body>
</html>

通常网页中会有不止一个tab的内容模块,那么只要修改一下上述js代码块,一个方法就可以被所有tab所使用,我的代码如下:

 <script type="text/javascript">
        //thisObj:当前对象, Num:id末位值, classAtive:ative的样式, classNormal:没有active的样式, len:用来标示li长度,有的li仅仅占地方,不参与tab切换。
        function nTabs(thisObj, Num, classAtive, classNormal, len) {
            if (thisObj.className.substr(0, thisObj.className.length - 1) == "active") return;
            var tabObj = thisObj.parentNode.id;
            var tabList = document.getElementById(tabObj).getElementsByTagName("li");
            for (i = 0; i < tabList.length - len; i++) {
                if (i == Num) {
                    thisObj.className = classAtive;
                    document.getElementById(tabObj + "_Content" + i).style.display = "block";
                } else {
                    tabList[i].className = classNormal;
                    document.getElementById(tabObj + "_Content" + i).style.display = "none";
                }
            }
        }
    </script>

在布局代码中就可以这样使用:

 <ul id="myTab7">
     <li class="normal3" οnclick="nTabs(this,0,'active3','normal3',0);">AAAA</li>
     <li class="active3" οnclick="nTabs(this,1,'active3','normal3',0);">BBBBB</li>
 </ul>
 <ul id="myTab0">
     <li class="normal1" οnclick="nTabs(this,0,'active1','normal1',1)">CCCCC</li>
     <li class="active1" οnclick="nTabs(this,1,'active1','normal1',1)">DDDDD</li>
     <li class="normalEmpty1"></li><!--这个li仅做占位所用,所以,上述的nTabs最后一个参数为1-->
 </ul>




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值