亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

javascript實現tab切換的四種方法

2019-11-20 11:20:29
字體:
來源:轉載
供稿:網友

tab切換在網頁中很常見,故最近總結了4種實現方法。
首先,寫出tab的框架,加上最簡單的樣式,代碼如下:

<!DOCTYPE html> <html> <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><style> *{ padding: 0; margin: 0; } li{  list-style: none;  float:left; } #tabCon{  clear: both; } </style> </head> <body> <div id="tanContainer">  <div id="tab">  <ul>   <li>標題一</li>   <li>標題二</li>   <li>標題三</li>   <li>標題四</li>  </ul>  </div>  <div id="tabCon">  <div>內容一</div>  <div>內容二</div>  <div>內容三</div>  <div>內容四</div>  </div> </div> </body> </html>

現在的顯示效果如下圖:

四個tab標題和四個內容區都顯示在了頁面中,現在要實現tab切換效果,即點擊標題一,內容一顯示出來,其他內容不顯示;點擊標題二,內容二顯示出來,其他內容不顯示……
那么,整體思路很簡單,給四個標題綁定事件,觸發的時候對應的內容顯示,其他的內容隱藏。

方法一:點擊標題對應的內容顯示,非點擊標題對應的內容隱藏。代碼如下:

 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <style> *{  padding: 0;  margin: 0; } li{  list-style: none; } </style> <script> function tab(pid){  var tabs=["tab1","tab2","tab3","tab4"];  for(var i=0;i<4;i++){   if(tabs[i]==pid){    document.getElementById(tabs[i]).style.display="block";  }else{    document.getElementById(tabs[i]).style.display="none";  }  } } </script></head> <body> <div id="tanContainer">  <div id="tabNav">  <ul>   <li onclick="tab('tab1')">標題一</li>   <li onclick="tab('tab2')">標題二</li>   <li onclick="tab('tab3')">標題三</li>   <li onclick="tab('tab4')">標題四</li>  </ul>  </div>  <div id="tab">   <div id="tab1">內容一</div>  <div id="tab2">內容二</div>   <div id="tab3">內容三</div>  <div id="tab4">內容四</div>  </div> </div> </body> </html>

方法二:先設置所有內容隱藏,然后點擊標題對用的內容顯示。代碼如下:

 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <style> *{  padding: 0;  margin: 0; } li{  list-style: none; float:left; } #tabCon{  clear: both; } #tabCon_1{ display: none; } #tabCon_2{  display: none; } #tabCon_3{ display: none; } </style> <script> function changeTab(tabCon_num){ for(i=0;i<=3;i++) {   document.getElementById("tabCon_"+i).style.display="none"; //將所有的層都隱藏   }   document.getElementById("tabCon_"+tabCon_num).style.display="block";//顯示當前層  }  </script> </head> <body> <div id="tanContainer">  <div id="tab">  <ul>   <li onclick="changeTab('0')">標題一</li>   <li onclick="changeTab('1')">標題二</li>   <li onclick="changeTab('2')">標題三</li>   <li onclick="changeTab('3')">標題四</li>  </ul> </div>  <div id="tabCon">  <div id="tabCon_0">內容一</div>  <div id="tabCon_1">內容二</div>  <div id="tabCon_2">內容三</div>  <div id="tabCon_3">內容四</div> </div> </div> </body> </html>

方法三:顯示和隱藏通過是有擁有class控制,先把所有的內容隱藏dispaly設為none,而該class的display設置為block,遍歷所有標題節點和內容節點,點擊標題后,該標題節點和對用的內容節點擁有class,其他的沒有。代碼如下:

 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <style> *{  padding: 0;  margin: 0; } li{  list-style: none;  float:left; } #tabCon {  clear: both; } #tabCon div {  display:none; } #tabCon div.fdiv {  display:block; } </style> </head> <body> <div id="tanContainer">  <div id="tab">  <ul>   <li class="fli">標題一</li>   <li>標題二</li>   <li>標題三</li>   <li>標題四</li>  </ul>  </div>  <div id="tabCon">  <div class="fdiv">內容一</div>  <div>內容二</div>  <div>內容三</div>  <div>內容四</div> </div> </div> </body> <script> var tabs=document.getElementById("tab").getElementsByTagName("li"); var divs=document.getElementById("tabCon").getElementsByTagName("div"); for(var i=0;i<tabs.length;i++){  tabs[i].onclick=function(){change(this);} } function change(obj){ for(var i=0;i<tabs.length;i++){  if(tabs[i]==obj){  tabs[i].className="fli";  divs[i].className="fdiv"; }else{  tabs[i].className="";  divs[i].className="";  }  } }  </script> </html>

該方法的缺點是,內容塊的div下面不能再有div標簽了。

方法四:不用js,用“input:checked”來做tab切換,先把所有的內容隱藏,被選中的內容顯示。代碼如下:

 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>input:checked實現tab切換</title> <style> input{ opacity: 0;/*隱藏input的選擇框*/ } label{ cursor: pointer;/*鼠標移上去變成手狀*/ float: left; } label:hover{ background: #eee; } input:checked+label{ color: red; } /*選擇前面有.tabs input:nth-of-type(x):checked的.panels .panel:nth-child(x)*/ .tabs input:nth-of-type(1):checked~.panels .panel:nth-child(1), .tabs input:nth-of-type(2):checked~.panels .panel:nth-child(2){ opacity: 1; } .panel{ opacity: 0; position: absolute;/*使內容區域位置一樣*/ } </style> </head> <body> <div class="tabs">  <input checked id="one" name="tabs" type="radio">  <label for="one">標題一</label>   <input id="two" name="tabs" type="radio">  <label for="two">標題二</label>   <div class="panels">   <div class="panel">   <p>內容一</p>   </div>   <div class="panel">   <p>內容二</p>   </div>  </div> </div> </body> </html>

該方法的缺點是,不同區域切換只能通過點擊。

以上就是為大家總結的tab切換實現方法,希望對大家的學習有所幫助,順著這個思路動手制作自己tab切換特效。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产91精品最新在线播放| 亚洲免费av网址| 国产精品第一第二| 国外成人在线播放| 国产精品久久久久久久美男| 亚洲性无码av在线| 一道本无吗dⅴd在线播放一区| 国产在线播放91| 亚洲精品日韩激情在线电影| 久久琪琪电影院| 国产精品福利久久久| 97超视频免费观看| 久久久久国产精品免费网站| 欧美日本在线视频中文字字幕| 国产精品日日做人人爱| 热99在线视频| 亚洲大尺度美女在线| 欧美日韩一区二区在线播放| 欧美激情视频在线免费观看 欧美视频免费一| 日本人成精品视频在线| 国内伊人久久久久久网站视频| 热99精品只有里视频精品| 亚洲一级一级97网| 午夜精品久久久久久99热软件| 这里只有视频精品| 国产一区二区欧美日韩| 久久艳片www.17c.com| 欧美视频在线免费看| 少妇高潮久久久久久潘金莲| 欧美大尺度激情区在线播放| 国产精品视频xxxx| 国产亚洲欧洲高清一区| 亚洲aⅴ日韩av电影在线观看| 77777亚洲午夜久久多人| 成人性生交大片免费看小说| 国产91ⅴ在线精品免费观看| 亚洲另类欧美自拍| 青青久久av北条麻妃黑人| 欧美视频在线视频| 91免费看国产| 日韩av毛片网| 日韩av电影在线网| 久久精品最新地址| 国产成人jvid在线播放| 国产精品一区二区三区成人| 欧美国产乱视频| 久久综合久久八八| 在线亚洲午夜片av大片| 亚洲第一区中文99精品| 欧美性极品少妇精品网站| 国产精品h片在线播放| 亚洲成人xxx| 欧美一级视频免费在线观看| 欧美激情一二三| 日本久久久a级免费| 国产自摸综合网| 国产精品久久久久久婷婷天堂| 午夜精品久久久久久久久久久久| 91免费精品国偷自产在线| 国产精品中文字幕久久久| 亚洲自拍欧美色图| 久久影视电视剧凤归四时歌| 91精品在线看| 日韩精品有码在线观看| 国产成人精品a视频一区www| 亚洲黄页网在线观看| 久久久久久国产精品三级玉女聊斋| 亚洲色图第一页| 久久久之久亚州精品露出| 国产脚交av在线一区二区| 欧美精品一区二区三区国产精品| 日韩成人在线电影网| 日韩在线播放一区| 精品福利一区二区| 日韩欧美在线免费观看| 国产精品video| 91社影院在线观看| 国产日本欧美一区二区三区| 亚洲色图13p| 中文字幕亚洲激情| 日本成熟性欧美| 中文字幕无线精品亚洲乱码一区| 精品亚洲一区二区三区| 亚洲国产精品悠悠久久琪琪| 久久福利视频导航| 欧美老女人性视频| 欧美在线免费观看| 精品呦交小u女在线| 日韩欧美在线视频免费观看| 全色精品综合影院| 国产在线拍偷自揄拍精品| 久久天天躁狠狠躁夜夜躁| 插插插亚洲综合网| 国产视频一区在线| 国内揄拍国内精品| 欧美性受xxxx白人性爽| 国产日韩欧美电影在线观看| 欧美成人久久久| 久久精品亚洲94久久精品| 久久夜色精品亚洲噜噜国产mv| 欧美性猛交99久久久久99按摩| 亚洲天堂精品在线| 亚洲国产精品久久久久久| 4p变态网欧美系列| 26uuu日韩精品一区二区| 亚洲成人av在线播放| 国产精品27p| 国产精品美女无圣光视频| 91国产精品电影| 91中文字幕在线观看| 亚洲欧美制服中文字幕| 欧美大尺度激情区在线播放| 福利一区福利二区微拍刺激| 亚洲xxxx3d| 九九热99久久久国产盗摄| 久久久精品视频成人| 国产一区二区视频在线观看| 国产精品a久久久久久| 久久久久久有精品国产| 国产精品青青在线观看爽香蕉| 亚洲xxxxx性| 91日本在线视频| 国产成人综合一区二区三区| 韩国欧美亚洲国产| 欧美成人在线免费视频| 欧美丰满少妇xxxx| 国产精品91免费在线| 欧美综合激情网| 精品无码久久久久久国产| 国产成人精品在线观看| 亚洲国模精品一区| 55夜色66夜色国产精品视频| 97香蕉超级碰碰久久免费的优势| 成人久久久久爱| 91久久久久久久一区二区| 日韩人体视频一二区| 伊人精品在线观看| 亚洲国产精品推荐| 亚洲一区二区中文字幕| 欧美伦理91i| 日本一区二三区好的精华液| 亚洲精品福利资源站| 国产91色在线| 国产精品 欧美在线| 亚洲欧美福利视频| 欧美日韩在线另类| 日本高清不卡在线| 国产女人18毛片水18精品| 亚洲一区二区三区成人在线视频精品| 国产亚洲精品久久久| 韩国福利视频一区| 91精品国产色综合久久不卡98| 亚洲欧美一区二区三区在线| 日韩影视在线观看| 97免费中文视频在线观看| 亚洲国产中文字幕久久网| 中文字幕国产亚洲| 成人欧美一区二区三区黑人| 狠狠躁夜夜躁人人爽天天天天97| 亚洲欧洲日产国产网站| 久久久久久久久久久久久久久久久久av| 精品小视频在线| 97成人精品区在线播放| 欧美国产日韩一区二区在线观看|