jquery樹形菜單完整代碼


本實例實現了樹形的動態菜單,兼容IE8,火狐,Chrome等瀏覽器。使用了jQuery的toggle() 方法。效果和代碼如下:

http://keleyi.com/keleyi/phtml/jqmenu/6.htm

  1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2 <html xmlns="http://www.w3.org/1999/xhtml">
  3 <head>
  4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5 <title>jquery的樹形菜單代碼 - 計划 - 博客園 </title>
  6 <meta name="keywords" content="www.cnblogs.com/jihua"/>
  7 <style type="text/css">
  8 body { font-family:"宋體"; font-size: 12px; line-height: 1.5em; color:#7FB0C8; padding:0; margin:0; background: #336699;}
  9 ul,ol,li,dl,dt,dd { margin:0; padding:0; list-style-type:none;}
 10 h1,h2,h3,form,input,iframe,span { margin:0; padding:0;} 
 11 a { color:#7FB0C8;}
 12 a:link {color: #7FB0C8; TEXT-DECORATION: none;}
 13 a:visited {color: #7FB0C8; TEXT-DECORATION: none;}
 14 a:hover {color: #fff; TEXT-DECORATION: none;}
 15 .white { color:#fff;}
 16 .white a:link {color: #fff; TEXT-DECORATION: none;}
 17 .white a:visited {color: #fff; TEXT-DECORATION: none;}
 18 .white a:hover {color: #73E1F5; TEXT-DECORATION: none;}
 19 /* 樹形菜單開始 */
 20 .close { float:right; clear:right; font-size:12px; font-weight:normal; cursor:pointer; padding-right:10px;}
 21 .title { font-size:14px; color:#fff; margin-bottom:10px; padding-left:5px; width:290px;}
 22 .menu { width:290px; height:330px; margin-bottom:10px;}
 23 
 24 .l1 { background:#000; font-size:13px; padding:5px 0 0 30px; height:20px; margin-bottom:5px; cursor:pointer;}
 25 .slist { margin:0 0 5px 0; display:none;}
 26 .l2 { padding:0 0 0 35px; font-size:13px;}
 27 .l2 a { padding:6px 0 0 5px; width:230px; height:21px; display:block;} 
 28 .currentl2 a,.l2 a:hover { background:#1E5A82; color:#fff;}
 29 .sslist { background:#156890; width:235px; overflow:hidden; margin:0 0 5px 35px; display:none;}
 30 .l3 a { padding:6px 0 0 5px; width:230px; height:20px; display:block;} 
 31 .currentl3 a,.l3 a:hover { color:#fff; font-weight:bold;}
 32 </style>
 33 <script type="text/javascript" src="http://keleyi.com/keleyi/pmedia/jquery/jquery-1.4.2.min.js"></script>
 34 <script type="text/javascript">
 35     // 樹狀菜單
 36     $(document).ready(function () {
 37         $(".l1").toggle(function () {
 38             $(".slist").animate({ height: 'toggle', opacity: 'hide' }, "slow");
 39             $(this).next(".slist").animate({ height: 'toggle', opacity: 'toggle' }, "slow");
 40         }, function () {
 41             $(".slist").animate({ height: 'toggle', opacity: 'hide' }, "slow");
 42             $(this).next(".slist").animate({ height: 'toggle', opacity: 'toggle' }, "slow");
 43         });
 44 
 45         $(".l2").toggle(function () {
 46             $(this).next(".sslist").animate({ height: 'toggle', opacity: 'toggle' }, "slow");
 47         }, function () {
 48             $(this).next(".sslist").animate({ height: 'toggle', opacity: 'toggle' }, "slow");
 49         });
 50 
 51         $(".l2").click(function () {
 52             $(".l3").removeClass("currentl3");
 53             $(".l2").removeClass("currentl2");
 54             $(this).addClass("currentl2");
 55         });
 56 
 57         $(".l3").click(function () {
 58             $(".l3").removeClass("currentl3");
 59             $(this).addClass("currentl3");
 60         });
 61 
 62         $(".close").toggle(function () {
 63             $(".slist").animate({ height: 'toggle', opacity: 'show' }, "fast");
 64             $(".sslist").animate({ height: 'toggle', opacity: 'show' }, "fast");
 65         }, function () {
 66             $(".slist").animate({ height: 'toggle', opacity: 'hide' }, "fast");
 67             $(".sslist").animate({ height: 'toggle', opacity: 'hide' }, "fast");
 68         });
 69     });
 70 </script>
 71 </head>
 72 <body>
 73 <h1 class="title"><span class="close">全部收起/展開</span>Jihua樹形菜單</h1>
 74 <div class="menu">
 75   <h1 class="l1">一級菜單</h1>
 76   <div class="slist">
 77     <h2 class="l2"><a href="#">二級菜單</a></h2>
 78     <ul class="sslist">
 79       <li class="l3"><a href="#">·三級菜單</a></li>
 80       <li class="l3"><a href="#">·三級菜單</a></li>
 81       <li class="l3"><a href="http://jihua.cnblogs.com" target="_blank">·jihua.cnblogs.com</a></li>
 82       <li class="l3"><a href="#">·三級菜單</a></li>
 83     </ul>
 84     <h2 class="l2"><a href="#">二級菜單</a></h2>
 85     <ul class="sslist">
 86       <li class="l3"><a href="#">·三級菜單</a></li>
 87       <li class="l3"><a href="#">·三級菜單</a></li>
 88       <li class="l3"><a href="http://jihua.cnblogs.com" target="_blank">·三級菜單</a></li>
 89       <li class="l3"><a href="#">·三級菜單</a></li>
 90     </ul>
 91     <h2 class="l2"><a href="#">二級www.cnblogs.com/jihua</a></h2>
 92   </div>
 93   <h1 class="l1">一級博客園</h1>
 94   <div class="slist">
 95     <h2 class="l2"><a href="#">二級菜單計划</a></h2>
 96     <h2 class="l2"><a href="#">二級菜單</a></h2>
 97     <h2 class="l2"><a href="#">二級菜單</a></h2>
 98   </div>
 99   <h1 class="l1">一級菜單</h1>
100   <div class="slist">
101     <h2 class="l2"><a href="#">二級菜單</a></h2>
102     <h2 class="l2"><a href="#">二級菜單</a></h2>
103     <h2 class="l2"><a href="#">二級菜單</a></h2>
104   </div>
105 </div>
106 </body>
107 </html>

 

本實例用到jquery的toggle() 方法,介紹如下:

定義和用法

toggle() 方法切換元素的可見狀態。

如果被選元素可見,則隱藏這些元素,如果被選元素隱藏,則顯示這些元素。

語法

$(selector).toggle(speed,callback,switch)
參數 描述
speed

可選。規定元素從可見到隱藏的速度(或者相反)。默認為 "0"。

可能的值:

  • 毫秒 (比如 1500)
  • "slow"
  • "normal"
  • "fast"

在設置速度的情況下,元素從可見到隱藏的過程中,會逐漸地改變其高度、寬度、外邊距、內邊距和透明度。

如果設置此參數,則無法使用 switch 參數。

callback

可選。toggle 函數執行完之后,要執行的函數。

如需學習更多有關 callback 的內容,請訪問我們的 jQuery Callback 這一章。

除非設置了 speed 參數,否則不能設置該參數。

switch

可選。布爾值。規定 toggle 是否隱藏或顯示所有被選元素。

  • True - 顯示所有元素
  • False - 隱藏所有元素

如果設置此參數,則無法使用 speed 和 callback 參數。

提示和注釋

注釋:該效果適用於通過 jQuery 隱藏的元素,或在 CSS 中聲明 display:none 的元素(但不適用於 visibility:hidden 的元素)。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM