一個簡單的tab選項卡執行個體

來源:互聯網
上載者:User

結構:

View Code

 1 <div class="demo">
2 <ul id="tab_t1" class="hd">
3 <li>新聞</li>
4 <li>視頻</li>
5 <li>圖片</li>
6 </ul>
7 <ul id="tab_c1" class="bd">
8 <li class="news">
9 我正要推開車門,他從身後挽住了我的腰,我不由自主回頭,觸到他如星子一般的眼眸:"康楠......如果覺得辛苦,一定要告訴我,讓我替你分擔。從現在開始,你不再是一個人了,明白了嗎?"
10 </li>
11 <li class="videos">
12 我站在轉彎的街角,清風吹拂,將我的裙角微微掀起,我只得捏著裙擺,瀏覽著街邊小店的櫥窗打發時間。時間一分一秒地過去,林默風遲遲沒有出現。終於聽到小車的轟鳴聲,奧迪停在了路口,玻璃搖下來,戴著墨鏡的林默風面無表情地注視著我,看著我向他走過來。他今天也穿得十分休閑隨意,一件藍色格子的鱷魚T恤和白色休閑褲,一隻手放鬆地搭在車窗玻璃上,墨鏡裡,那雙瞳仁目光灼灼地盯著我,彷彿想看穿我的心事。我不禁納悶地問:"你怎麼了?"
13 </li>
14 <li class="photos">
15 愛情是場機遇,轉瞬即逝,可惜在它閃現時許多人都往往沒有來得及做好擁抱的準備。所以人世間才有那麼多傷心的人兒,流淚的情歌,傷感的情懷……休完年假,我回到公司,卻敏感地察覺到了一絲異樣。辦公室裡氣氛有些詭異,大家瞄著我的眼神也帶著莫名其妙的同情。我的心裡浮現一絲不祥的預感,他們怎麼了?我只離開了4天,是不是工作上出什麼事了?
16 </li>
17 </ul>
18  </div>

實現過程:

var $ = function(id) {return document.getElementById(id);};function getChildNode(superNode, index) {/* * 功能說明: * 傳入父元素節點,按照index順序尋找子節點,從1開始(注意:只針對元素節點) * 如果不傳入index或index是0,則返回所有子節點 */if(!superNode.childNodes) return;//if (typeof index !== 'number') { alert('請輸入數字索引'); return; }index = Number(index) || 0;var subNodes = [];var result = null;for(var i=0, len=superNode.childNodes.length; i<len; i++) {//得到所有子項目節點var node = superNode.childNodes[i];if(node.nodeType == 1) {subNodes.push(node);} else {continue;}}if(index === 0) {result = subNodes;} else {for(var i= 0; i<subNodes.length; i++) {subNodes[i].flag = i + 1;if(subNodes[i].flag == index) {result = subNodes[i];break;};}}return result? result : alert('你輸入的索引值對應的子節點不存在!');}function TabObj(tabT, tabC, index, type) {this.index = Number(index) || 0;this.type = Number(type) || 0;this.btns = getChildNode(tabT, 0);this.boxs = getChildNode(tabC, 0);this.open(this.index);for(var i=0; i<this.btns.length; i++) {var _this = this;this.btns[i].flag = i;if(this.type == 0) {this.btns[i].onmouseover = function() {_this.open(this.flag);};} else {this.btns[i].onclick = function() {_this.open(this.flag);};}}}TabObj.prototype = {open: function(n) {this.close();this.btns[n].className = 'open';this.boxs[n].className = 'block';},close: function() {for(var i=0; i<this.btns.length; i++) {this.btns[i].className = 'close';this.boxs[i].className = 'hidden';}}}window.onload = function() {var tabObj1 = new TabObj($('tab_t1'), $('tab_c1'));var tabObj2 = new TabObj($('tab_t2'), $('tab_c2'), 1, 1);}

說明:定義了兩種類型的事件,即滑鼠移上去切換或者滑鼠點擊切換;另外,還可以自行定義頁面載入時選項卡停在那裡,預設是第一個按鈕上。

最後,請單擊查看Demo

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.