站長資訊網
        最全最豐富的資訊網站

        總結js實現動態選項卡的四種方法!

        本篇文章給大家詳細介紹JS實現動態選擇選項卡的多種方法,希望對需要的朋友有所幫助!

        JS多種方法實現動態選擇選項卡

        首先貼出HTML 和 CSS 這個不是重點

        <!DOCTYPE html> <html> <head>     <meta charset="UTF-8">     <meta name="viewport" content="width=device-width, initial-scale=1.0">     <meta http-equiv="X-UA-Compatible" content="ie=edge">     <title>Document</title>     <link rel="stylesheet" href="css/reset.min.css">     <style>         .tabBox{             margin: 20px  auto;             width: 500px;         }         .tabBox ul{             position: relative;             top: 1px;         }         .tabBox ul li{             display: inline-block;             padding: 0 5px;             margin-right:10px;             line-height: 33px;             border: 1px solid #aaa;              cursor: pointer;         }         .tabBox ul li.active{             border-bottom-color:#fff;              /* 當前LI的邊框覆蓋著DIV的邊框,             我們讓LI的下邊框是背景顏色白色,這樣看上去就像沒邊框了 */             font-weight: bold;             color: lightcoral;         }         .tabBox div{             display: none;             line-height: 148px;             text-align: center;             border: 1px solid #aaa;          }         .tabBox div.active{             display: block;         }             </style> </head> <body>     <div id="tabBox">         <ul>             <li>新聞</li>             <li>電影</li>             <li>音樂</li>         </ul>           <div>嘟嘟</div>         <div>滴滴</div>         <div>嘟嘟滴滴</div>      </div>        <script src="js/tab_zy.js"></script>            </body> </html>

        【實現思路】

        • 給所有的LI綁定點擊事件,當點擊任何一個li 的時候,都做第二步操作

        • 可以先讓所有的LI && p 的class都為空(xxx.className=’’),在讓當前點擊 的這個LI和對應的p有 active這個樣式類即可

        以下是JS獲取元素的 公用部分

        var oBox = document.getElementById('tabBox'),     oList = oBox.getElementsByTagName('li'),     op = oBox.getElementsByTagName('p');

        方案一

        var LastIndex = 0 //記錄上次所選的LI 選中的索引 for(var i=0;i<oList.length;i++){ 	oList[i].CurIndex = i 	oList[i].onclick = function(){ 	if(this.CurIndex===LastIndex) return;//=>如果當前點擊的索引和上一次索引相同(點擊的就是上一個被選中的),我們不做任何事情 		oList[LastIndex].className = op[LastIndex].className = ''	//=>清空上一次 		oList[this.CurIndex].className=op[this.CurIndex].className = 'active' 		//=>修改LAST-INDEX值,讓當前本選中的索引作為下一次點擊要清除的上一次的索引 		LastIndex  = this.CurIndex 	} }

        方案二:

        //=>1.傳遞對象 for(var i = 0; i<oList.length ; i++){ 	oList[i].onclick = function(){ 		ChangeTab(this); 	}  } function ChangeTab(n){ 	for(var j=0;j<oList.length;j++){ 	//=>如果當前循環的LI和傳遞進來點擊的那個元素相同,說明當前循環的這個LI就是被點擊的,讓其有選中樣式 		if(oList[j]===n){ 			oList[j].className= op[j].className = 'active' 		}else{ 		//=>不相等,則不是被點擊的,我們取消選中樣式即可 			oList[j].className= op[j].className = '' 		} 	} }

        方案三:

        for (let i = 0; i < tabList.length; i++) {     tabList[i].onclick=function(){         // 事件綁定:給當前元素的某一個事情綁定一個方法,綁定的時候方法沒有執行         // (屬于創建一個方法,當在頁面中手動觸發點擊事件的時候綁定的方法才會執行)         changeTab(i);     }      } // 形參變量:當執行這個方法的時候,會把當前點擊的這個LI索引傳遞過來 function changeTab(n) {     // 1、所有都沒有選中樣式     for (let i = 0; i < tabList.length; i++) {         tabList[i].className='';         pList[i].className ='';              }     // 2、當前點擊的所有選中樣式     tabList[n].className='active';     pList[n].className = 'active'; }

        方案四:(JQ實現)

        //當HTML結構都加載完成執行函數 jQuery(function($){         //基于JQ內置EACH機制,給每個LI 都綁定了 點擊事件         $('.tabBox>.header>li').on('click',function(){             let index = $(this).index();//獲取當前點擊LI 的索引             //siblings()  獲取兄弟元素             $(this).addClass('active').siblings().removeClass('active').parent().nextAll('p').eq(index).addClass('active').siblings('p').removeClass('active')                     }); });

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 午夜精品美女写真福利| 精品第一国产综合精品蜜芽| 欧美视频精品一区二区三区| 日本精品一区二区久久久| 国产精品福利在线观看| 日韩欧精品无码视频无删节| 国产香蕉国产精品偷在线观看| 99精品人妻无码专区在线视频区| 亚洲欧美一级久久精品| 精品国产人成亚洲区| 777国产盗摄偷窥精品0OOO| 国产精品色内内在线播放| 四虎国产精品永久在线看 | 欧美精品综合视频一区二区| 久久久91精品国产一区二区三区| 精品熟女少妇a∨免费久久| 午夜三级国产精品理论三级| 国产午夜福利精品久久| 9re热国产这里只有精品| 精品福利一区二区三| 69久久精品无码一区二区| 精品调教CHINESEGAY| 一本一本久久a久久综合精品蜜桃 一本一道精品欧美中文字幕 | 国产福利精品在线观看| 久久96国产精品久久久| heyzo高无码国产精品| 国产精品成熟老女人视频| 日韩精品内射视频免费观看| 夜夜爽一区二区三区精品| 无码人妻精品一区二区蜜桃百度 | 国产精品国产三级国产av品爱网| 国内精品久久久久影院优| 久久精品无码专区免费青青| 国产精品综合色区在线观看| 国产精品VA在线观看无码不卡| 国产精品视频永久免费播放| 91视频国产精品| 久久精品视频网| 国产亚洲精品拍拍拍拍拍| 精品人妻少妇一区二区三区在线| 久久精品女人天堂AV麻|