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

来源:互联网 发布:魔兽世界种族寿命 知乎 编辑:程序博客网 时间:2024/06/05 16:18

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

<!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" onclick="nTabs(this,0);">源码首页</li>        <li class="normal" onclick="nTabs(this,1);">最新更新</li>        <li class="normal" onclick="nTabs(this,2);">下载排行</li>        <li class="normal" onclick="nTabs(this,3);">源码分类</li>        <li class="normal" onclick="nTabs(this,4);">网页特效</li>        <li class="normal" onclick="nTabs(this,5);">ASP源码</li><li class="normal" onclick="nTabs(this,6);">PHP源码</li><li class="normal" onclick="nTabs(this,7);">JSP源码</li><li class="normal" onclick="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" onclick="nTabs(this,0,'active3','normal3',0);">AAAA</li>     <li class="active3" onclick="nTabs(this,1,'active3','normal3',0);">BBBBB</li> </ul>
 <ul id="myTab0">     <li class="normal1" onclick="nTabs(this,0,'active1','normal1',1)">CCCCC</li>     <li class="active1" onclick="nTabs(this,1,'active1','normal1',1)">DDDDD</li>     <li class="normalEmpty1"></li><!--这个li仅做占位所用,所以,上述的nTabs最后一个参数为1--> </ul>




0 0