JS实现选项卡切换效果

 一、在网页制做过程当中,咱们常常会用到选项卡切换效果,它可以让咱们的网页在交互和布局上都能获得提高css

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

 

 三、 具体的实现是经过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>
相关文章
相关标签/搜索