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>
相關文章
相關標籤/搜索