亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JS實現(xiàn)選項卡實例詳解

 更新時間:2015年11月17日 16:27:22   作者:jingangel  
這篇文章主要介紹了JS實現(xiàn)選項卡的方法,結(jié)合實例形式詳細講述了JavaScript實現(xiàn)選項卡的布局與功能實現(xiàn)的完整步驟及相關(guān)技巧,需要的朋友可以參考下

本文實例講述了JS實現(xiàn)選項卡的方法。分享給大家供大家參考,具體如下:

思路:選項卡就是點擊按鈕切換到相應內(nèi)容,其實就是點擊按鈕把內(nèi)容通過display(block none)來實現(xiàn)切換的。

1、首先獲取元素。

2、for循環(huán)歷遍按鈕元素添加onclick 或者 onmousemove事件。

3、因為點擊當前按鈕時會以高亮狀態(tài)顯示,所以要再通過for循環(huán)歷遍把所有的按鈕樣式設(shè)置為空和把所有DIV的display設(shè)置為none。

4、把當前按鈕添加樣式,把當前DIV顯示出來,display設(shè)置為block。

注:給多個元素添加多個事件要用for循環(huán)歷遍。如選項卡是點擊切換,當前按鈕高度,點擊和按鈕高亮就是2個事件,所以要用2個for循環(huán)歷遍。

HTML代碼:

<div id="box">
 <input type="button" value="1" />
 <input type="button" value="2" />
 <input type="button" value="3" />
 <input type="button" value="4" />
 <div>1</div>
 <div>2</div>
 <div>3</div>
 <div>4</div>
</div>

JS代碼:

<script>
 window.onload=function(){
  var box=document.getElementById('box');
  var input=box.getElementsByTagName('input');
  var div=box..getElementsByTagName('div');
  for(var i=0;i<input.length;i++){ //循環(huán)歷遍onclick事件
   input[i].index=i; //input[0].index=0 index是自定義屬性
   input[i].onclick=function(){
    for(var i=0;i<input.length;i++){ //循環(huán)歷遍去掉button樣式和把div隱藏
     input[i].className='';
     div[i].style.display='none';
    };
    this.className='active'; //當前按鈕添加樣式
    div[this.index].style.display='block'; //div顯示 this.index是當前div 即div[0]之類的
   };
  };
  };
</script>

補充:用js寫簡單選項卡完整步驟

如圖,最簡單的純粹的選項卡

第一步,當然是先寫html代碼和css樣式

<!DOCTYPE html>
<html>
<head>
<meta charset="gb2312" />
<title>無標題文檔</title>
<style>
body,ul,li{margin:0; padding:0; font:12px/1.5 arial;}
ul,li{list-style:none;}
.wrap{width:500px; margin:20px auto;}
.hide{display:none;}
#tab_t{height:25px;border-bottom:1px solid #ccc;}
#tab_t li{float:left; width:80px; height:24px; line-height:24px; margin:0 4px; text-align:center; border:1px solid #ccc; border-bottom:none; background:#f5f5f5; cursor:pointer}
#tab_t .act{ position:relative; height:25px; margin-bottom:-1px; background:#fff;}
#tab_c{border:1px solid #ccc; border-top:none; padding:20px;}
</style>
</head>
<body>
<div class="wrap">
 <ul id="tab_t">
 <li class="act">選擇1</li>
 <li>選擇2</li>
 <li>選擇3</li>
 <li>選擇4</li>
 </ul>
 <div id="tab_c">
 <div>內(nèi)容1</div>
 <div class="hide">內(nèi)容2</div>
 <div class="hide">內(nèi)容3</div>
 <div class="hide">內(nèi)容4</div>
 </div>
</div> 
</body>
</html>

第二步,實現(xiàn)簡單的切換效果

要點1:abc.document.getElementsByTagName("li"):取得abc下面的所有標簽為li的元素,返回的是一個元素集合,有數(shù)組的一些屬性。

要點2:循環(huán),先循環(huán)給li加上onclick事件,再onlink事件點擊的時候,再循環(huán)讓所有選項卡的act樣式去掉,所有的內(nèi)容隱藏。然后讓所點擊的選項及對應內(nèi)容顯示。

要點3:tab_t_li[i].index = i; 在循環(huán)時,給選項卡加一個額外的屬性并賦值,以做選項卡和內(nèi)容的對應。

<!DOCTYPE html>
<html>
<head>
<meta charset="gb2312" />
<title>無標題文檔</title>
<style>
body,ul,li{margin:0; padding:0; font:12px/1.5 arial;}
ul,li{list-style:none;}
.wrap{width:500px; margin:20px auto;}
.hide{display:none;}
#tab_t{height:25px;border-bottom:1px solid #ccc;}
#tab_t li{float:left; width:80px; height:24px; line-height:24px; margin:0 4px; text-align:center; border:1px solid #ccc; border-bottom:none; background:#f5f5f5; cursor:pointer}
#tab_t .act{ position:relative; height:25px; margin-bottom:-1px; background:#fff;}
#tab_c{border:1px solid #ccc; border-top:none; padding:20px;}
</style>
<script>
window.onload = function(){
 var tab_t = document.getElementById("tab_t");
 var tab_t_li = tab_t.getElementsByTagName("li");
 var tab_c = document.getElementById("tab_c");
 var tab_c_li = tab_c.getElementsByTagName("div");
 var len = tab_t_li.length;
 var i=0;
 for(i=0; i<len; i++){
  tab_t_li[i].index = i;
  tab_t_li[i].onclick = function(){
   for(i=0; i<len; i++){
    tab_t_li[i].className = '';
    tab_c_li[i].className = 'hide';
   }
   tab_t_li[this.index].className = 'act';
   tab_c_li[this.index].className = '';
  }
 }
}
</script>
</head>
<body>
<div class="wrap">
 <ul id="tab_t">
 <li class="act">選擇1</li>
 <li>選擇2</li>
 <li>選擇3</li>
 <li>選擇4</li>
 </ul>
 <div id="tab_c">
 <div>內(nèi)容1</div>
 <div class="hide">內(nèi)容2</div>
 <div class="hide">內(nèi)容3</div>
 <div class="hide">內(nèi)容4</div>
 </div>
</div> 
</body>
</html>

第三步,寫成函數(shù)。上面的寫法只能一個頁面用一個選項卡,如果再加一個的話,就需要復制一份,再改很多變量名。

要點:tab_t_li[i][evt] 因為傳值的時候是字符串,如果直接寫的話就是tab_t_li[i]."onclick"這樣話是執(zhí)行不了的,tab_t_li["onclick"]這樣執(zhí)行沒問題。

好了,現(xiàn)在一個頁面上就可以有多個切換了,只需要調(diào)用函數(shù)的時候,寫上相應的id名和標簽名,事件名稱就可以了

<!DOCTYPE html>
<html>
<head>
<meta charset="gb2312" />
<title>無標題文檔</title>
<style>
body,ul,li{margin:0; padding:0; font:12px/1.5 arial;}
ul,li{list-style:none;}
.wrap{width:500px; margin:20px auto;}
.hide{display:none;}
#tab_t{height:25px;border-bottom:1px solid #ccc;}
#tab_t li{float:left; width:80px; height:24px; line-height:24px; margin:0 4px; text-align:center; border:1px solid #ccc; border-bottom:none; background:#f5f5f5; cursor:pointer}
#tab_t .act{ position:relative; height:25px; margin-bottom:-1px; background:#fff;}
#tab_c{border:1px solid #ccc; border-top:none; padding:20px;}
</style>
<script>
window.onload = function(){
 tab("tab_t","li","tab_c","div","onmouseover")
 function tab(tab_t,tab_t_tag,tab_c,tag_c_tag,evt){
  var tab_t = document.getElementById(tab_t);
  var tab_t_li = tab_t.getElementsByTagName(tab_t_tag);
  var tab_c = document.getElementById(tab_c);
  var tab_c_li = tab_c.getElementsByTagName(tag_c_tag);
  var len = tab_t_li.length;
  var i=0;
  for(i=0; i<len; i++){
   tab_t_li[i].index = i;
   tab_t_li[i][evt] = function(){
    for(i=0; i<len; i++){
     tab_t_li[i].className = '';
     tab_c_li[i].className = 'hide';
    }
    tab_t_li[this.index].className = 'act';
    tab_c_li[this.index].className = '';
   }
  }
 }
}
</script>
</head>
<body>
<div class="wrap">
 <ul id="tab_t">
 <li class="act">選擇1</li>
 <li>選擇2</li>
 <li>選擇3</li>
 <li>選擇4</li>
 </ul>
 <div id="tab_c">
 <div>內(nèi)容1</div>
 <div class="hide">內(nèi)容2</div>
 <div class="hide">內(nèi)容3</div>
 <div class="hide">內(nèi)容4</div>
 </div>
</div> 
</body>
</html>

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

相關(guān)文章

  • threejs后期處理的基本使用方法之加特效

    threejs后期處理的基本使用方法之加特效

    這篇文章主要給大家介紹了關(guān)于threejs后期處理的基本使用方法之加特效的相關(guān)資料,文中通過實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2022-01-01
  • 常常會用到的截取字符串substr()、substring()、slice()方法詳解

    常常會用到的截取字符串substr()、substring()、slice()方法詳解

    javascript中給我們提供三個截取字符串的方法,分別是:slice(),substring()和substr()。下面我們對這三個函數(shù)進行詳細說明和比較,需要的朋友可以參考下
    2015-12-12
  • javascript SocialHistory 檢查訪問者是否訪問過某站點

    javascript SocialHistory 檢查訪問者是否訪問過某站點

    今天delicious上這個名為 SocialHistory 的腳本十分引人注目。源代碼可以在這里下載。這段js代碼的功能就是判斷你的用戶有沒有訪問過某個網(wǎng)站。使用方法很簡單,例如:
    2008-08-08
  • JS實現(xiàn)數(shù)組去重方法總結(jié)(六種方法)

    JS實現(xiàn)數(shù)組去重方法總結(jié)(六種方法)

    這篇文章給大家總結(jié)下JS實現(xiàn)數(shù)組去重方法(六種方法),面試中也經(jīng)常會遇到這個問題。文中給大家引申的還有合并數(shù)組并去重的方法,感興趣的朋友跟隨腳本之家小編一起學習吧
    2017-07-07
  • 前端彈出對話框 js實現(xiàn)ajax交互

    前端彈出對話框 js實現(xiàn)ajax交互

    這篇文章主要為大家詳細介紹了前端彈出對話框,js實現(xiàn)ajax交互,感興趣的小伙伴們可以參考一下
    2016-09-09
  • JS模擬bootstrap下拉菜單效果實例

    JS模擬bootstrap下拉菜單效果實例

    這篇文章主要介紹了JS模擬bootstrap下拉菜單效果,結(jié)合完整實例形式分析了javascript動態(tài)操作頁面元素的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2016-06-06
  • js時間戳和c#時間戳互轉(zhuǎn)方法(推薦)

    js時間戳和c#時間戳互轉(zhuǎn)方法(推薦)

    下面小編就為大家?guī)硪黄猨s時間戳和c#時間戳互轉(zhuǎn)方法(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • JavaScript編寫一個簡易購物車功能

    JavaScript編寫一個簡易購物車功能

    這篇文章主要為大家詳細介紹了JavaScript簡易購物車功能的編寫代碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • 如何實現(xiàn)JS函數(shù)的重載

    如何實現(xiàn)JS函數(shù)的重載

    如何實現(xiàn)JS函數(shù)的重載...
    2006-09-09
  • JavaScript Map實現(xiàn)原理與底層結(jié)構(gòu)詳解

    JavaScript Map實現(xiàn)原理與底層結(jié)構(gòu)詳解

    哈希表(也稱為哈希表)是一種基于鍵直接訪問內(nèi)存存儲位置的數(shù)據(jù)結(jié)構(gòu)。也就是說,它通過計算一個鍵值函數(shù)來加速查找,該函數(shù)將要查詢的數(shù)據(jù)映射到表中的某個位置。該映射函數(shù)稱為散列函數(shù),記錄數(shù)組稱為散列表
    2022-09-09

最新評論