基于jquery的标签切换效果

January 14, 2010 | tags jquery插件   | views
Comments 0

现在很多页面都需要做标签切换效果,为了以后使用方便,写了一个通用的方法,可以快速制作标签切换效果。在这里分享,里面有注释,如果有疑问可以留言给我。例子代码如下(需要另外下载jquery文件):

<!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>
body{ background:#fff; margin:0; padding:0;font-size:12px; color:#333;}
.zhzhtabs dt li{padding:0;margin:0;list-style:none;float:left; cursor:pointer;}
.zhzhtabs dd{clear:both; margin:0}

.tab1off,.tab1on{width:50px;}
.tab1on{color:#f00;border:1px solid #060;}
.tab1off{color:#446674;}

.tab2off,.tab2on{width:200px;}
.tab2on{color:#FC0}
.tab2off{color:#600}

.tab1_c{ height:100px; background:#3C0}
.tab2_c{ height:30px; border:1px solid #F93; background:#FC6;}
</style>
<script language="javascript" type="text/javascript" src="jquery.js"></script>
<script language="javascript" type="text/javascript">
$(document).ready(function(){
 //在此调用方法创建效果实例  参数说明:zhzh_CreateTab(dl的ID,当前项的class,其他项的class,默认项索引,事件类型)
 //ps:1,默认项索引  0开始 2,单击:click,鼠标经过:mouseover,双击:dblclick 3,(如果用得好,注意样式的通用性可以节省代码)
 zhzh_CreateTab("tab1","tab1on","tab1off",0,"click");
 zhzh_CreateTab("tab2","tab2on","tab2off",1,"mouseover");
 zhzh_CreateTab("tab3","tab1on","tab1off",2,"click");
         });
var changestat=true;
function zhzh_CreateTab(eid,onclass,offclass,defaultItem,howdo)
//标签切换效果通用代码 design by zhzh.cq.cn
//参数说明:zhzh_CreateTab(dl的ID,当前项的class,其他项的class,默认项索引)
{
 $("#"+eid+" dt li").addClass(offclass).bind(howdo,function(){
  if(changestat){
  $("#"+eid+" dt li").removeClass(onclass).addClass(offclass);
  $(this).removeClass(offclass);
  $(this).addClass(onclass);
  var Ctit=$.trim($(this).text());
  $.each($("#"+eid+" dt li"), function(i, n){if($.trim(n.innerText)==Ctit){changestat=false;$("#"+eid+" dd>div").hide();$($("#"+eid+" dd>div")[i]).fadeIn("fast",function(){changestat=true});}});
  }});
 if($("#"+eid+" dt li").length>defaultItem);
 {
  $("#"+eid+" dt li")[defaultItem].className=onclass;
  $("#"+eid+" dd>div").hide();
  if($("#"+eid+" dd>div").length>defaultItem)
  $("#"+eid+" dd>div")[defaultItem].style.display="";
 }
}

</script>
</head>

<body>
<div style="width:500px;">
<!--这里dl必须建立设置id 定义dl外面容器的宽度,dl不定义宽度这样可以让它100%自适应-->
 <dl id="tab1" class="zhzhtabs">
     <dt><li>tab1</li><li>tab2</li><li>tab3</li></dt>
        <dd>
        <!--dd下div个数跟上面li个数一样,切换的时候会显示对应的那一个  样式可以用全局方式 也可以再在div上加class 或者加id个别设置-->
         <div class="tab1_c">111</div>
            <div class="tab1_c">222</div>
            <div class="tab1_c">333</div>
        </dd>
    </dl>
</div>
<br />
<br />
<br />
<br />

<div style="width:1000px;">
 <dl id="tab2" class="zhzhtabs">
     <dt><li>tab1</li><li>tab2</li><li>tab3</li></dt>
        <dd>
         <div class="tab2_c">111</div>
            <div class="tab2_c">222</div>
            <div class="tab2_c">333</div>
        </dd>
    </dl>
</div>
<br />
<br />
<br />


<dl id="tab3" class="zhzhtabs">
     <dt><li>tab1</li><li>tab2</li><li>tab3</li></dt>
        <dd>
        <!--dd下div个数跟上面li个数一样,切换的时候会显示对应的那一个  样式可以用全局方式 也可以再在div上加class 或者加id个别设置-->
         <div>111</div>
            <div>222</div>
            <div>333</div>
        </dd>
    </dl>
    <br />
<br />
<br />
<br />

</body>
</html>
 


    相关文章:



发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。