JS实现选项卡切换效果

 1、在网页制作过程中,我们经常会用到选项卡切换效果,它能够让我们的网页在交互和布局上都能得到提升

原理:在布局好选项卡的HTML结构后,我们可以看的出来,选项卡实际上是三个选项卡标头和三个对应的版块,如下图,是三个标头分别是教育,娱乐,汽车,当我们单击教育时,教育那个选项卡标头的背景会变成激活状白色,下面的的三个DIV形成的版块只会显示第一个教育的内容。当我们单击娱乐时,娱乐那个选项卡标头的背景会变成激活状白色,下面的的三个DIV形成的版块只会显示第二个娱乐的内容。当我们单击汽车时,汽车那个选项卡标头的背景会变成激活状白色,下面的的三个DIV形成的版块只会显示第三个汽车的内容。

 

 3、 具体的实现是通过getElementsByTagName方法,先对选项卡三个标头H3进行捕获,产生一个数组,我们利用for循环分别对每个标头选项H3添加一个index属性作为它的序号同时注册单击事件,当某个H3被单击时,我们先把所有的H3都变成原始状态,没active类,然后再把被单击的H3要添加一个active类使其变成白色,此时,我们还要知道被单击H3的序号,这样我们可以去,设定与之序号相同的DIV显示出来,而其它的DIV刚隐藏起来。

 

<!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">

#tab{width:300px;border:3px solid #CCC;}
#tab .active{background-color:#FFF}
#tab h3{
margin:0px;
padding:0px;
font-size:14px;
float:left;
background-color:#CCC;
width:60px;
height:24px;
line-height:24px;
text-align:center;
}
#tab div{
clear:both;
height:100px;
font-size:14px;
padding:20px 0px 0px 20px;
display:none;
}
</style>
<script>
window.onload=function(){
var oTab=document.getElementById("tab");
var aH3=oTab.getElementsByTagName("h3");
var aDiv=oTab.getElementsByTagName("div");
for(var i=0;i<aH3.length;i++){ 
   aH3[i].index=i;
   aH3[i].onclick=function(){
   for(var i=0;i<aH3.length;i++){
   aH3[i].className="";
   aDiv[i].style.display="none";
   }
   this.className="active";
   aDiv[this.index].style.display="block";
   }
  }
 }

</script>


</head>

<body>

<div id="tab">
  <h3 class="active">教育</h3>
  <h3>娱乐</h3>
  <h3>汽车</h3>
  
  <div style="display:block">教育的内容</div>
  <div>娱乐的内容</div>
  <div>汽车的内容</div>
</body>
</html>

 

 

 

posted @ 2016-08-15 10:23  天菜嘛  阅读(9658)  评论(0编辑  收藏  举报