JavaScript實(shí)現(xiàn)tab欄切換效果
本文實(shí)例為大家分享了JavaScript實(shí)現(xiàn)tab欄切換效果的具體代碼,供大家參考,具體內(nèi)容如下
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <!-- css樣式 --> <style> * { margin: 0; padding: 0; } .box { width: 600px; margin: 100px 500px; border: 1px solid #999; } li { list-style: none; } .tab_top { width: 600px; height: 50px; background-color: #ccc; } .tab_top li { float: left; width: 50px; height: 50px; line-height: 50px; text-align: center; padding: 0 20px; } .current { background-color: red; color: #fff; } .tab_con { width: 600px; height: 300px; background-color: #fff; } 先在css里面設(shè)置下面小div全部隱藏 .item { display: none } </style> <!-- html結(jié)構(gòu) --> <body> <div class="box"> <div class="tab_top"> <ul> <li class="current">標(biāo)題一</li> <li>標(biāo)題二</li> <li>標(biāo)題三</li> <li>標(biāo)題四</li> <li>標(biāo)題五</li> </ul> </div> <div class="tab_con"> <div class="item" style="display: block;"> --->此處默認(rèn)第一個(gè)顯示 我是內(nèi)容一<br> 我是內(nèi)容一<br> 我是內(nèi)容一<br> 我是內(nèi)容一<br> 我是內(nèi)容一<br> </div> <div class="item"> 我是內(nèi)容二<br> 我是內(nèi)容二<br> 我是內(nèi)容二<br> 我是內(nèi)容二<br> 我是內(nèi)容二<br> </div> <div class="item"> 我是內(nèi)容三<br> 我是內(nèi)容三<br> 我是內(nèi)容三<br> 我是內(nèi)容三<br> 我是內(nèi)容三<br> </div> <div class="item"> 我是內(nèi)容四<br> 我是內(nèi)容四<br> 我是內(nèi)容四<br> 我是內(nèi)容四<br> 我是內(nèi)容四<br> </div> <div class="item"> 我是內(nèi)容五<br> 我是內(nèi)容五<br> 我是內(nèi)容五<br> 我是內(nèi)容五<br> 我是內(nèi)容五<br> 我是內(nèi)容五<br> </div> </div> </div> </body>
js:
<script> //1 上的選項(xiàng)卡 點(diǎn)擊某一個(gè) 當(dāng)前這一個(gè)底色是紅色 其余不變 (排他思想) 修改類名的方法 //獲取元素 //01 獲取上半部分盒子 var tab_top = document.querySelector('.tab_top'); //02 獲取上班部分 所有小li 得到一個(gè)數(shù)組 var lis = tab_top.querySelectorAll('li'); //03 獲取下半部分 所有小div盒子 得到一個(gè)數(shù)組 var item = document.querySelectorAll('.item') //for 循環(huán)所有小li 綁定點(diǎn)擊事件 for (var i = 0; i < lis.length; i++) { //開(kāi)始給上面li設(shè)置索引號(hào) 屬性index 值 i lis[i].setAttribute('index', i); // 注冊(cè)點(diǎn)擊事件 lis[i].onclick = function () { // 來(lái)個(gè)排他思想 for (var j = 0; j < lis.length; j++) { //先讓所有的li 點(diǎn)擊沒(méi)有樣式 lis[j].className = ''; } // 誰(shuí)點(diǎn)擊 誰(shuí)加樣式 this.className = 'current' //2 下面顯示內(nèi)容模塊也要寫在onclick里面 因?yàn)橐灰粚?duì)應(yīng) // 給上面top 所有l(wèi)i 添加index 索引號(hào) 屬性從0開(kāi)始 自定義屬性 // 上面已經(jīng)設(shè)置好 現(xiàn)在拿來(lái)用 var index = this.getAttribute('index'); // 點(diǎn)擊上面li 對(duì)應(yīng)下面div顯示出來(lái) //再來(lái)排他思想 先干掉其他人 讓隱藏 點(diǎn)誰(shuí) 誰(shuí)顯示 for (var k = 0; k < item.length; k++) { //所有的小div 隱藏 item[k].style.display = 'none' } //點(diǎn)擊哪個(gè)小li 小li的index對(duì)應(yīng)的div 顯示 item[index].style.display = 'block'; } } </script>
效果圖:
如果大家還想深入學(xué)習(xí),可以點(diǎn)擊兩個(gè)精彩的專題:javascript選項(xiàng)卡操作方法匯總 jquery選項(xiàng)卡操作方法匯總
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
js實(shí)現(xiàn)WebSocket 連接的示例代碼
本文主要介紹了js實(shí)現(xiàn)WebSocket 連接的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-05-05微信小程序的開(kāi)發(fā)范式BeautyWe.js入門詳解
這篇文章主要介紹了微信小程序的開(kāi)發(fā)范式BeautyWe.js詳解,它是一套專注于微信小程序的企業(yè)級(jí)開(kāi)發(fā)范式,它的愿景是:讓企業(yè)級(jí)的微信小程序項(xiàng)目中的代碼,更加簡(jiǎn)單、漂亮,需要的朋友可以參考下2019-07-07淺談JS中String()與 .toString()的區(qū)別
下面小編就為大家?guī)?lái)一篇淺談JS中String()與 .toString()的區(qū)別。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-10-10JS動(dòng)態(tài)設(shè)置頁(yè)面高度的操作代碼
這篇文章主要介紹了JS動(dòng)態(tài)設(shè)置頁(yè)面高度的操作代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-04-04如何通過(guò)Proxy實(shí)現(xiàn)JSBridge模塊化封裝
這篇文章主要介紹了如何通過(guò)Proxy實(shí)現(xiàn)JSBridge模塊化封裝,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10