网站开发之二级选项卡制作记录

本吊是程序小白,写的代码肯定质量不高,希望看到的朋友不要笑话。从网上找了一部分源码,结合自己的思考,制作了一个能显示二级选项卡的网页。其中一级选项卡部分的源码是从网上找的,我的工作就是在这个源码的基础上做出了二级选项卡效果。通过自己的研究做出了一点东西,就想找个地方记录一下,想必做技术的都有这个爱好吧。废话不多说,上代码吧。

<!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>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
!window.jQuery && document.write('<script src=http://lib.sinaapp.com/js/jquery/1.7.2/jquery.min.js><\/script>');
</script>
<script type="text/javascript">


$(document).ready(function() {
jQuery.jqtab = function(tabtit,tabcon) {
$(tabcon).hide();
$(tabtit+" li:first").addClass("thistab").show(); 
$(tabcon+":first").show();

$(tabtit+" li").mouseover(function() {
$(tabtit+" li").removeClass("thistab");
$(this).addClass("thistab"); 
$(tabcon).hide(); 
var activeTab = $(this).find("a").attr("tab"); 
$("#"+activeTab).fadeIn(); 
return false;
});

};
/*调用方法如下:*/
$.jqtab("#tabs",".tab_con");
$.jqtab("#tabs2",".tab_con2");
});
</script>
<script  language="javascript">
 
function a(o){return document.getElementById(o);}
function showdiv(i){

for(var j=1;j<=12;j++){
a("div"+j).className="undisplay"        //将所有DIV隐藏;
}


for(var k=1;k<=12;k++){
if(k==1||k==5||k==9){
continue;
}                    
a("li"+k).className="list_unchoosed"   //将所有LI样式设为未被选中时的样式
}                                       


a("div"+i).className="display"          //显示所需DIV
a("li"+i).className="list_choosed"      //对应LI变换样式
}


</script>
<style>
body {
color: #333;
background: #FFF;
font-size: 12px;
}
ul, dl, dd, h1, h2, h3, h4, h5, h6, form, p {
padding: 0;
margin: 0;
}
ul {
list-style: none;
}
a {
text-decoration: none;
color: #333333;
}
a:hover {
text-decoration: underline;
}
.clear {
clear: both;
}
.h2 {
height: 2px;
wodth: 100%;
}
.h100 {
height: 100px;
wodth: 100%;
}
.tab_conbox {
overflow: hidden;
}
.tab_con {
display: none;
}
.tabs {
height: 34px;
width: 100%;
}
.tabs li {
height: 27px;
line-height: 27px;
float: left;
overflow: hidden;
position: relative;
text-align: center;
background: #15CB00;
margin-top: 5px;
margin-left: 10px
}
.tabs li a {
display: block;
width: 142px;
utline: none;
font-size: 14px;
color: #fff;
font-weight: bold
}
.tabs li a:hover {
background: #fff;
color: #318600;
}
.tabs .thistab, .tabs .thistab a:hover {
background: #fff;
}
.tabs .thistab, .tabs .thistab a {
background: #fff;
color: #318600;
}
.index00 {
width: 550px;
height: 32px;
line-height: 34px;
background: #15CB00
}
.list01 {
width: 300px;
height: 30px;
margin-left: 10px;
top: 0px;
border: 1px solid #15CB00;
}
.list01 li {
width: 33.333333333%;
height: 25px;
padding-top: 5px;
float: left;
text-align: center;
background: #15CB00;
}
.list02 {
width: 300px;
height: 30px;
margin-left: 100px;
top: 0px;
border: 1px solid #15CB00;
}
.list02 li {
width: 33.333333333%;
height: 25px;
padding-top: 5px;
float: left;
text-align: center;
background: #15CB00;
}
.list03 {
width: 300px;
height: 30px;
margin-left: 241px;
top: 0px;
border: 1px solid #15CB00;
}
.list03 li {
width: 33.333333333%;
height: 25px;
padding-top: 5px;
float: left;
text-align: center;
background: #15CB00;
}
.list_unchoosed {
display: block;
font-size: 14px;
color: #fff;
font-weight: bold;
line-height: 25px;
border-left: 5px solid #15CB00;
border-right: 5px solid #15CB00;
}
.list_choosed {
background: #fff;
color: #318600;
display: block;
font-size: 14px;
font-weight: bold;
line-height: 25px;
border-left: 5px solid #15CB00;
border-right: 5px solid #15CB00;
}
.display {
display: block;
margin-top: 10px;
height: 100px;
line-height: 100px;
border: 1px solid #1456fd;
font-size: 20px;
font-weight: bold;
text-align: center;
color: #FF0000;
}
.undisplay {
display: none;
}
.tab_conbox2 {
overflow: hidden;
}
.tab_con2 {
display: none;
}
.tabs2 {
height: 34px;
width: 100%;
}
.tabs2 li {
height: 27px;
line-height: 27px;
float: left;
overflow: hidden;
position: relative;
text-align: center;
background: #15CB00;
margin-top: 5px;
margin-left: 10px
}
.tabs2 li a {
display: block;
width: 142px;
utline: none;
font-size: 14px;
color: #fff;
font-weight: bold
}
.tabs2 li a:hover {
background: #fff;
color: #318600;
}
.tabs2 .thistab, .tabs2 .thistab a:hover {
background: #fff;
}
.tabs2 .thistab, .tabs2 .thistab a {
background: #fff;
color: #318600;
}
.display2 {
margin-top: 10px;
height: 100px;
line-height: 100px;
border: 1px solid #1456fd;
font-size: 20px;
font-weight: bold;
text-align: center;
color: #FF0000;
}
</style>
</head>


<body>
<div style="margin: 0px auto;width: 550px;"> 
  
  <!--主选项卡部分-->
  
  <div class="index00">
    <ul class="tabs" id="tabs">
      <li οnmοuseοver="showdiv(1)"><a href="/" target="_blank" tab="tab1">选项卡1</a></li>
      <li οnmοuseοver="showdiv(5)"><a href="/" target="_blank" tab="tab2">选项卡2</a></li>
      <li  οnmοuseοver="showdiv(9)"><a href="/" target="_blank" tab="tab3">选项卡3</a></li>
    </ul>
  </div>
  
  <!--主选项卡部分结束-->
  
  <div class="h2 clear"></div>
  
  <!--副选项卡部分-->
  
  <div>
    <ul class="tab_conbox">
      
      <!--选项卡1部分-->
      <li id="tab1" class="tab_con" >
        <ul class="list01" >
          <li  οnmοuseοver="showdiv(2)"><a href="/" target="_blank" id="li2" class="list_unchoosed">选项卡1-1</a></li>
          <li  οnmοuseοver="showdiv(3)"><a href="/" target="_blank" id="li3" class="list_unchoosed">选项卡1-2</a></li>
          <li  οnmοuseοver="showdiv(4)"><a href="/" target="_blank" id="li4" class="list_unchoosed">选项卡1-3</a></li>
        </ul>
      <li id="div1" class="display"> 选项卡1的内容 </li>
      <li id="div2" class="undisplay" > 选项卡1-1的内容 </li>
      <li id="div3" class="undisplay" > 选项卡1-2的内容 </li>
      <li id="div4" class="undisplay" > 选项卡1-3的内容 </li>
      </li>
      <!--选项卡1部分结束--> 
      
      <!--选项卡2部分-->
      
      <li id="tab2" class="tab_con"  >
        <ul class="list02"   >
          <li  οnmοuseοver="showdiv(6)"><a href="/" target="_blank" id="li6" class="list_unchoosed">选项卡2-1</a></li>
          <li   οnmοuseοver="showdiv(7)"><a href="/" target="_blank"  id="li7" class="list_unchoosed">选项卡2-2</a></li>
          <li   οnmοuseοver="showdiv(8)"><a href="/" target="_blank"  id="li8" class="list_unchoosed">选项卡2-3</a></li>
        </ul>
      <li id="div5" class="undisplay"> 选项卡2的内容 </li>
      <li id="div6" class="undisplay" > 选项卡2-1的内容 </li>
      <li id="div7" class="undisplay" > 选项卡2-2的内容 </li>
      <li id="div8" class="undisplay" > 选项卡2-3的内容 </li>
      </li>
      <!--选项卡1部分结束--> 
      
      <!--选项卡3部分-->
      
      <li id="tab3" class="tab_con" >
        <ul class="list03"   >
          <li  οnmοuseοver="showdiv(10)"><a href="/" target="_blank" id="li10" class="list_unchoosed">选项卡3-1</a></li>
          <li  οnmοuseοver="showdiv(11)"><a href="/" target="_blank"  id="li11" class="list_unchoosed">选项卡3-2</a></li>
          <li  οnmοuseοver="showdiv(12)"><a href="/" target="_blank"  id="li12" class="list_unchoosed">选项卡3-3</a></li>
        </ul>
      <li id="div9" class="undisplay"> 选项卡3的内容 </li>
      <li id="div10" class="undisplay"> 选项卡3-1的内容 </li>
      <li id="div11" class="undisplay"> 选项卡3-2的内容 </li>
      <li id="div12" class="undisplay"> 选项卡3-3的内容 </li>
      </li>
      <!--选项卡3部分结束-->
      
    </ul>
  </div>
  
  <!--副选项卡部分结束-->
  
  <div class="h100 clear"></div>
  
  <!--作为对比一级选项卡-->
  <div >
    <p style="font-size: 20px;font-weight: bold;margin-bottom:10px;">【作为对比:一级选项卡】</p>
    <div class="index00">
      <ul class="tabs2" id="tabs2">
        <li ><a href="/" target="_blank" tab="tab4">选项卡1</a></li>
        <li ><a href="/" target="_blank" tab="tab5">选项卡2</a></li>
        <li ><a href="/" target="_blank" tab="tab6">选项卡3</a></li>
      </ul>
    </div>
    <div class="h2 clear"></div>
    <div>
      <ul class="tab_conbox2">
        <li id="tab4" class="tab_con2" >
          <div  class="display2"> 选项卡1的内容 </div>
        </li>
        <li id="tab5" class="tab_con2"  >
          <div class="display2">选项卡2的内容</div>
        </li>
        <li id="tab6" class="tab_con2" >
          <div class="display2">选项卡3的内容</div>
        </li>
      </ul>
    </div>
  </div>
</div>
</body>
</html>


总体思想:1、给每一个选项卡对应的内容赋一个ID ,通过JS控制每一个ID的className,从而控制它的显示与隐藏。

                    2、要显示某个选项卡的内容之前,将所有选项卡的内容隐藏,同时将所有选项卡的LI样式设为未被选中时的样式;之后通过函数的参数显示出所需内容,同时变换对应LI样式。

不足之处:用onmouseover 事件触发函数,如果要选择主选项卡(选项卡1、2、3)里面的内容,那么鼠标不能直接往下移,必须从旁边绕过副选项卡区域

                   解决方法:用 onclick 事件触发函数,但这种情况下,选项卡内不能含有超链接。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值