DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> JS基於面向對象實現的選項卡效果示例
JS基於面向對象實現的選項卡效果示例
編輯:關於JavaScript     

本文實例講述了JS基於面向對象實現的選項卡效果。分享給大家供大家參考,具體如下:

中間過渡環節:把面向過程的程序,改寫成面向對象的形式

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style>
#div1 input {background:#CCC;}
#div1 .active {background:yellow;}
#div1 div {width:200px; height:200px; background:#CCC; display:none;}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文檔</title>
<script>
window.onload=function ()
{
  var oDiv=document.getElementById('div1');
  var aBtn=oDiv.getElementsByTagName('input');
  var aDiv=oDiv.getElementsByTagName('div');
  var i=0;
  for(i=0;i<aBtn.length;i++)
  {
    aBtn[i].index=i;
    aBtn[i].onclick=function ()
    {
      for(i=0;i<aBtn.length;i++)
      {
        aBtn[i].className='';
        aDiv[i].style.display='none';
      }
      this.className='active';
      aDiv[this.index].style.display='block';
    };
  }
};
</script>
</head>
<body>
<div id="div1">
  <input class="active" type="button" value="教育" />
  <input type="button" value="財經" />
  <input type="button" value="aaa" />
  <div style="display:block;">1asdfasdfds</div>
  <div>2xzcvxzcv</div>
  <div>5332342345</div>
</div>
</body>
</html>

改寫注意事項:

1.前提:所有代碼必須包含在window.onload裡面
2.去掉函數嵌套(window.onload裡面嵌套的函數拎到window.onload外面去)
3.不能有函數嵌套,但可以有全局變量(比如onclick函數拎出去後,aBtn是window.onload函數裡的私有變量,onclick函數不能用)

過程:

1.onload(初始化整個程序)→構造函數(初始化一個對象)
2.全局變量→屬性
3.函數→方法

window.onload=function(){
  var oTab=new TabSwitch("div1");
}
function TabSwitch(id)
{
  var oDiv=document.getElementById(id);
  this.aBtn=oDiv.getElementsByTagName('input');
  this.aDiv=oDiv.getElementsByTagName('div');
  var i=0;
  var _this=this;     //this是new出來的對象,即oTab
  for(i=0;i<this.aBtn.length;i++)
  {
    this.aBtn[i].index=i;
    this.aBtn[i].onclick=function(){
      _this.tab(this);  //通過參數的形式,將被點擊的按鈕傳到下面去
    };
  }
};
TabSwitch.prototype.tab=function(oBtn){
  for(i=0;i<this.aBtn.length;i++)
  {
    this.aBtn[i].className='';
    this.aDiv[i].style.display='none';
  }
  oBtn.className='active';  //要被點擊的按鈕改變,而不是new出來的對象,所以這裡不用this
  this.aDiv[oBtn.index].style.display='block';
}

更多關於JavaScript相關內容感興趣的讀者可查看本站專題:《javascript面向對象入門教程》、《JavaScript切換特效與技巧總結》、《JavaScript動畫特效與技巧匯總》、《JavaScript查找算法技巧總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》、《JavaScript中json操作技巧總結》、《JavaScript錯誤與調試技巧總結》及《JavaScript數學運算用法總結》

希望本文所述對大家JavaScript程序設計有所幫助。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved