左側選單欄摺疊展開效果-超級簡單
分享一個常見於管理後臺的左側選單欄摺疊展開的效果,基於jquery,效果圖如下:

一:頁面結構:
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> </head> <body> <div class="menu-list"> <ul> <li class="first-menu"> <a href="javascript:;">首頁</a> </li> <li class="first-menu"> <a href="javascript:;">選單1</a> <ul> <li class="second-menu"> <a href="javascript:;">子選單1-1</a> </li> <li class="second-menu"> <a href="javascript:;">子選單1-2</a> </li> <li class="second-menu"> <a href="javascript:;">子選單1-3</a> </li> <li class="second-menu"> <a href="javascript:;">子選單1-4</a> </li> </ul> </li> <li class="first-menu"> <a href="javascript:;">選單2</a> <ul> <li class="second-menu"> <a href="javascript:;">子選單2-1</a> </li> <li class="second-menu"> <a href="javascript:;">子選單2-2</a> </li> <li class="second-menu"> <a href="javascript:;">子選單2-3</a> </li> </ul> </li> <li class="first-menu"> <a href="javascript:;">選單3</a> <ul> <li class="second-menu"> <a href="javascript:;">子選單3-1</a> </li> <li class="second-menu"> <a href="javascript:;">子選單3-2</a> </li> </ul> </li> </ul> </div> </body> </html>
二:頁面樣式css,放在head標籤裡
<style> *{ margin: 0; padding: 0; box-sizing: border-box; -webkit-box-sizing: border-box; } html,body{ height: 100%; } .menu-list{ height: 100%; padding-top:20px; font-size:18px; background-color: #2e3254; } .menu-list ul{ list-style: none; padding:0; margin:0 auto; } .menu-list ul li{ text-align:left; color: #616c82; } .menu-list ul li.first-menu{ overflow: hidden; } .menu-list ul li:HOVER>a{ color: #007FC8; } .menu-list ul li a{ display:block; padding:16px 0; color: #5f78a2; text-decoration:none; } .menu-list ul li.first-menu>a{ padding-left: 15px; } .menu-list ul li.first-menu.active>a{ color: #1c9dff; vertical-align: middle; } .menu-list ul li.first-menu.active ul li.second-menu.current a{ background-color: #4d527c; font-size: 18px; } .menu-list ul li.first-menu ul{ display:none; } .menu-list ul li.first-menu ul li.second-menu a{ padding: 12px 0 12px 31px; font-size:16px; color: #8aa3cd; } </style>
三:引入jquery檔案
<script type="text/javascript" src="//code.jquery.com/jquery-1.8.2.min.js"></script>
四:給一級選單繫結點選事件,點選時展開下面的子選單
$(".menu-list .first-menu").click(function(){ $(this).addClass("active").siblings().removeClass("active"); $(this).find("ul").slideToggle(500); $(this).siblings().find("ul").hide(); })
五:給二級選單繫結事件,點選時加入選中的深色背景
$(".menu-list .second-menu").click(function(){ var $this = $(this); $(".second-menu").each(function () { if($(this).hasClass("current")){ $(this).removeClass("current"); } }) $this.addClass("current").siblings().removeClass("current"); })
六:阻止二級選單點擊發生冒泡,當點選二級選單的時候,一級選單的事件也會發生,此時二級選單會被收起,因此需要阻止事件冒泡
//阻止事件冒泡 $(".menu-list .first-menu ul").bind("click",function(event){ event.stopPropagation(); });

原文作者技術部落格: https://www.jianshu.com/u/ac4daaeecdfe
95後前端妹子一枚,愛閱讀,愛交友,將工作中遇到的問題記錄在這裡,希望給每一個看到的你能帶來一點幫助。
歡迎留言交流