이 기사의 예에서는 QQ 친구 및 블랙리스트와 유사한 효과를 갖는 트리 메뉴의 JS CSS 구현을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 세부 내용은 다음과 같습니다.
오늘 소개한 메뉴가 제일 좋은데 아이콘이 몇개 빠져있고 경로가 남아있어요 꼭 사용하고 싶은 친구들은 접이식 메뉴 아이콘 2개를 만들어서 경로에 맞춰 업로드하면 됩니다. QQ 패널의 메뉴 기능을 모방한 것입니다. 많은 친구들이 여전히 이 기능을 매우 좋아합니다. 이렇게 적은 JS 코드로 구현할 수 있을 것이라고는 예상하지 못했습니다.
런닝 효과 스크린샷은 다음과 같습니다.
온라인 데모 주소는 다음과 같습니다.
http://demo.jb51.net/js/2015/js-css-qq-hy-hmd-style-menu-codes/
구체적인 코드는 다음과 같습니다.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE>QQ好友/黑名单的树型菜单</TITLE> </HEAD> <BODY> <script> if (!document.getElementById) document.getElementById = function() { return null; } function initializeMenu(menuId, actuatorId) { var menu = document.getElementById(menuId); var actuator = document.getElementById(actuatorId); if (menu == null || actuator == null) return; actuator.parentNode.style.backgroundImage = "url()"; actuator.onclick = function() { var display = menu.style.display; this.parentNode.style.backgroundImage = (display == "block") ? "url()" : "url()"; menu.style.display = (display == "block") ? "none" : "block"; return false; } } window.onload = function() { initializeMenu("productsMenu", "productsActuator"); initializeMenu("newPhonesMenu", "newPhonesActuator"); initializeMenu("compareMenu", "compareActuator"); } </script> <style> body { font-family: verdana, helvetica, arial, sans-serif; } #mainMenu { background-color: #EEE; border: 1px solid #CCC; color: #000; width: 203px; } #menuList { margin: 0px; padding: 10px 0px 10px 15px; } li.menubar { background: url() no-repeat 0em 0.3em; font-size: 12px; line-height: 1.5em; list-style: none outside; } .menu, .submenu { display: none; margin-left: 15px; padding: 0px; } .menu li, .submenu li { background: url() no-repeat 0em 0.3em; list-style: none outside; } a.actuator { background-color: transparent; color: #000; font-size: 12px; padding-left: 15px; text-decoration: none; } a.actuator:hover { text-decoration: underline; } .menu li a, .submenu li a { background-color: transparent; color: #000; font-size: 12px; padding-left: 15px; text-decoration: none; } .menu li a:hover, submenu li a:hover { text-decoration: underline; } span.key { text-decoration: underline; } </style> </head> <body> <div id="mainMenu"> <ul id="menuList"> <li class="menubar"> <a href="#" id="productsActuator" class="actuator">图秀地带收藏夹</a> <ul id="productsMenu" class="menu"> <li> <a href="#" id="newPhonesActuator" class="actuator">我的好友</a> <ul id="newPhonesMenu" class="submenu"> <li><a href="#">张三[10000001]</a></li> <li><a href="#">李四[10000002]</a></li> <li><a href="#">张三[10000001]</a></li> <li><a href="#">李四[10000002]</a></li> </ul> </li> <li> <a href="#" id="compareActuator" class="actuator">陌生人</a> <ul id="compareMenu" class="submenu"> <li><a href="#">张三[10000001]</a></li> <li><a href="#">李四[10000002]</a></li> <li><a href="#">张三[10000001]</a></li> <li><a href="#">李四[10000002]</a></li> </ul> </li> </ul> </li> </ul> </div> </body> </BODY> </HTML>
이 기사가 모든 사람의 JavaScript 프로그래밍에 도움이 되기를 바랍니다.