js自定義QQ菜單效果
QQ菜單大家都見(jiàn)過(guò),這樣有以下的功能:
1.點(diǎn)擊我的好友,會(huì)展示下拉出具體的好友
2.再點(diǎn)擊我的好友,會(huì)收縮
3.首次點(diǎn)擊具體的某個(gè)好友,只有當(dāng)前這個(gè)好友高亮
4.再次點(diǎn)擊這個(gè)好友時(shí),高亮狀態(tài)就消失了
還是瞄一眼效果圖吧:
最后代碼
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <style> ul,h2 {padding:0;margin:0;} li{list-style:none;} #list{width:200px;margin:0 auto;border:1px solid #000;} #list{width:200px;} #list h2{width:200px;height:30px;line-height:30px;text-align:center;background:url(img/ico1.gif) no-repeat 20% 50% #6699FF;text-indent:24px;border-bottom:1px dotted #000;} #list h2.active{background:url(img/ico2.gif) no-repeat 20% 50% #FFCC99;} #list ul{width:200px;text-align:center;display:none;} #list ul li{width:200px;height:30px;line-height:30px;} #list ul li.highlight{background:#FF66FF;} </style> <title>無(wú)標(biāo)題文檔</title> <script> window.onload = function () { var oUl = document.getElementById('list'); var oH2 = oUl.getElementsByTagName('h2'); var aUl = oUl.getElementsByTagName('ul'); var aLi = []; var arr = []; var oldLi = null; var num = 0; // 點(diǎn)擊菜單顯示隱藏 for( var i = 0; i < oH2.length; i++ ) { oH2[i].index = i; oH2[i].onclick = function () { if (this.className === '') { aUl[this.index].style.display = 'block'; this.className = 'active'; } else { aUl[this.index].style.display = 'none'; this.className = ''; } } } // 獲取菜單中的每個(gè)li for ( var i = 0; i < aUl.length; i++ ) { aLi = aUl[i].getElementsByTagName('li'); for ( var j = 0; j < aLi.length; j++ ) { arr.push(aLi[j]); } } // 遍歷aLi for ( var i = 0; i < arr.length; i++ ) { arr[i].onOff = false; arr[i].onclick = function () { // 當(dāng)上一個(gè)點(diǎn)擊的li不是當(dāng)前點(diǎn)擊的Li if (oldLi && oldLi !== this) { oldLi.className = ''; oldLi.onOff = false; } this.className = this.onOff ? '' : 'highlight'; this.onOff = !this.onOff; oldLi = this; } } } </script> </head> <body> <ul id="list"> <li class="lis"> <h2>我的好友</h2> <ul> <li>張三1</li> <li>張三2</li> <li>張三3</li> </ul> </li> <li class="lis"> <h2>企業(yè)好友</h2> <ul> <li>李四1</li> <li>李四2</li> <li>李四3</li> </ul> </li> <li class="lis"> <h2>黑名單</h2> <ul> <li>王五1</li> <li>王五2</li> </ul> </li> </ul> </body> </html>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- JS實(shí)現(xiàn)仿QQ效果的三級(jí)豎向菜單
- JS+CSS實(shí)現(xiàn)類似QQ好友及黑名單效果的樹(shù)型菜單
- JS實(shí)現(xiàn)超簡(jiǎn)單的仿QQ折疊菜單效果
- JS實(shí)現(xiàn)仿QQ面板的手風(fēng)琴效果折疊菜單代碼
- js實(shí)現(xiàn)帶緩沖效果的仿QQ面板折疊菜單代碼
- 從QQ網(wǎng)站中提取的純JS省市區(qū)三級(jí)聯(lián)動(dòng)菜單
- javascript仿qq界面的折疊菜單實(shí)現(xiàn)代碼
- javascript 仿QQ滑動(dòng)菜單效果代碼
- JS模擬的QQ面板上的多級(jí)可展開(kāi)的菜單
- JavaScript 下拉菜單實(shí)現(xiàn)代碼
相關(guān)文章
JS函數(shù)參數(shù)的傳遞與同名參數(shù)實(shí)例分析
這篇文章主要介紹了JS函數(shù)參數(shù)的傳遞與同名參數(shù),結(jié)合實(shí)例形式分析了JS函數(shù)參數(shù)的傳遞與同名參數(shù)相關(guān)原理、使用技巧與操作注意事項(xiàng),需要的朋友可以參考下2020-03-03javascript數(shù)組中的reduce方法和pop方法
這篇文章主要介紹了javascript數(shù)組中的reduce方法和pop方法,文章內(nèi)容介紹詳細(xì),具有一定的參考價(jià)值需要的小伙伴可以參考一下,希望對(duì)你的學(xué)習(xí)有所幫助2022-03-03Javascript 更新 JavaScript 數(shù)組的 uniq 方法
2008-01-01Bootstrap Table實(shí)現(xiàn)定時(shí)刷新數(shù)據(jù)的方法
這篇文章主要介紹了Bootstrap Table實(shí)現(xiàn)定時(shí)刷新數(shù)據(jù)的方法,在這里小編比較推薦使用第二種方法,需要的朋友參考下吧2018-08-08js實(shí)現(xiàn)按Ctrl+Enter發(fā)送效果
按Ctrl+Enter發(fā)送,思路是監(jiān)聽(tīng)textarea的onkeydown事件,當(dāng)ctrl鍵被按下,并且,keycode為13(回車),時(shí),調(diào)用發(fā)送表單的函數(shù)2014-09-09js+css實(shí)現(xiàn)上下翻頁(yè)相冊(cè)代碼分享
這篇文章主要介紹了js+css實(shí)現(xiàn)上下翻頁(yè)相冊(cè)特效,相冊(cè)可以從上方或者下方隨意切換,推薦給大家,有需要的小伙伴可以參考下。2015-08-08java實(shí)現(xiàn)單鏈表增刪改查的實(shí)例代碼詳解
在本篇文章里小編給大家整理了關(guān)于java實(shí)現(xiàn)單鏈表增刪改查的實(shí)例內(nèi)容,需要的朋友們可以參考下。2019-08-08