Jquery封裝tab選項卡

來源:互聯網
上載者:User

tab選項卡在網上是很常見的一種效果 網站當中隨處可見 特別是大型網站到處都是,但是寫tab這種效果 用的方式可能不一樣 有的是YUI寫的 用的是用KISSY寫的 有的是用原審js寫的 也有的是以Jquery架構寫的 但是我這裡是用Jquery來封裝tab選項卡的 在js中我用了Jquery中的children()這個方法 擷取父類中直接子項目,記住一定是直接子項目 假入說要擷取子項目的div當中的a標籤 比如這樣擷取 $("父類").children("div a");想擷取a標籤是擷取不到的 只能擷取到div標籤!!我以前做頁面時候就碰到過這種情況!OK  其實用Jquery來封裝tab選項卡是非常簡單的一件事情!只要幾行代碼 就ok了!下面是我的HTML結構及CSS

 

 
  1. <style type="text/css"> 
  2. ul,li,div{ margin:0; padding:0;}  
  3. ul,li{ list-style:none;}  
  4. .tabWrap{ width:450px; margin:0 auto 50px; overflow:hidden;}  
  5. .tab{ background:#F93; overflow:hidden; width:450px;}  
  6. .tab li{ float:left; width:150px; color:#fff; text-align:center; cursor:pointer; height:22px; line-height:22px;}  
  7. .tab li.on{background:#F60;}  
  8. .tabContent .p-content{ padding:20px; border:1px solid #ddd; border-top:0 none; }  
  9. .tabContent .hide{ display:none;}  
  10. </style> 
  11. <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script> 
  12.     </head> 
  13.     <body> 
  14.         <div class="tabWrap"> 
  15.         <ul class="tab"> 
  16.             <li>選項卡1</li> 
  17.             <li>選項卡2</li> 
  18.             <li>選項卡3</li> 
  19.         </ul> 
  20.         <div class="tabContent"> 
  21.             <div class="p-content">1111</div> 
  22.             <div class="p-content hide">222</div> 
  23.             <div class="p-content hide">3333</div> 
  24.         </div> 
  25.     </div> 
  26.       
  27.     <br/> 
  28.     <br/> 
  29.     <div class="tabWrap"> 
  30.         <ul class="tab"> 
  31.             <li>選項卡1</li> 
  32.             <li>選項卡2</li> 
  33.             <li>選項卡3</li> 
  34.         </ul> 
  35.         <div class="tabContent"> 
  36.             <div class="p-content">1111</div> 
  37.             <div class="p-content hide">222</div> 
  38.             <div class="p-content hide">3333</div> 
  39.         </div> 
  40.     </div> 

我這邊HTML是用了兩個一樣的結構及樣式  是為了測試js在一個頁面上多次調用是否成功!JS代碼如下:
 

 
  1. <script type="text/javascript">  
  2.     $(function(){  
  3.         function tabs(tabMenu,on,tabContent){  
  4.         $(tabContent).each(function(){  
  5.             $(this).children().eq(0).show();      
  6.         });   
  7.         $(tabMenu).each(function(){  
  8.             $(this).children().eq(0).addClass(on);    
  9.         });  
  10.         $(tabMenu).children().hover(function(){  
  11.             $(this).addClass(on).siblings().removeClass(on);  
  12.             var index = $(tabMenu).children().index(this);  
  13.             $(tabContent).children().eq(index).show().siblings().hide();      
  14.         });  
  15.     }  
  16.     tabs(".tab","on",".tabContent");  
  17. })  
  18.           
  19.     </script> 

引用上面的js就可以了!為了更清晰 待會把源檔案放在附件裡面 隨時可以下載看看!下面說說寫這個頁面的js一點思路!

一 function tabs(tabMenu,on,tabContent){}  用這個函數來封裝js 調用的方式是tabs(".tab","on",".tabContent"),其中tabMenu是指li外層ul on是指當滑鼠移上去li 希望他有個背景 tabContent 是指content的外層!

二 接著用each來遍曆 找到第一個子項目li增加一個類on 第一個content讓她們顯示!接著當滑鼠移到任何一個li時候 讓當前的li增加一個類on 同輩元素刪除類on  然後索引當前的li 看是第幾個 最後找出content  如果他的索引值和li的索引值相同的話 顯示內容 同輩元素隱藏掉!思路就這麼簡單!!!!

本文出自 “塗根華前端部落格” 部落格,請務必保留此出處http://tugenhua.blog.51cto.com/3912301/715331

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.