jquery實現的點擊可以展開摺疊的垂直導航菜單:本章節介紹一種比較常見的導航菜單是如何實現的,它具有垂直結構,點擊導航主標題可以展開或者摺疊二級菜單。代碼實例如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="
jquery實現的點擊可以展開摺疊的垂直導航菜單:
本章節介紹一種比較常見的導航菜單是如何實現的,它具有垂直結構,點擊導航主標題可以展開或者摺疊二級菜單。
代碼實例如下:
<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> body{ margin:0; padding:0 0 12px 0; font-size:12px; line-height:22px; font-family:"\5b8b\4f53", "Arial Narrow"; background:#fff; } form, ul, li, p, h1, h2, h3, h4, h5, h6{ margin:0; padding:0; } input, select{ font-size:12px; line-height:16px; } img{border:0;} ul, li{list-style-type:none;} a{ color:#00007F; text-decoration:none; } a:hover{ color:#bd0a01; text-decoration:underline; } .box{ width:150px; margin:0 auto; } .menu{ overflow:hidden; border-color:#C4D5DF; border-style:solid; border-width:0 1px 1px; } .menu li.level1 a{ display:block; height:28px; line-height:28px; background:#EBF3F8; font-weight:700; color:#5893B7; text-indent:14px; border-top:1px solid #C4D5DF; } .menu li.level1 a:hover{ text-decoration:none; } .menu li.level1 a.current{ background:#B1D7EF; } .menu li ul{ overflow:hidden; } .menu li ul.level2{ display:none; } .menu li ul.level2 li a{ display:block; height:28px; line-height:28px; background:#ffffff; font-weight:400; color:#42556B; text-indent:18px; border-top:0px solid #ffffff; overflow:hidden; } .menu li ul.level2 li a:hover { color:#f60; } </style> <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script> <script type="text/javascript"> $(document).ready(function(){ $(".level1 > a").click(function(){ $(this).addClass("current") .next().show() .parent().siblings().children("a").removeClass("current") .next().hide(); return false; }); }); </script> </head> <body> <div class="box"> <ul class="menu"> <li class="level1"> <a href="#none">前端專區</a> <ul class="level2"> <li><a href="#none">html教程</a></li> <li><a href="#none" >css教程</a></li> <li><a href="#none" >div教程</a></li> <li><a href="#none" >jquery教程</a></li> </ul> </li> <li class="level1"> <a href="#none">資源專區</a> <ul class="level2"> <li><a href="#none">特效下載</a></li> <li><a href="#none">電腦特效</a></li> <li><a href="#none">手機特效</a></li> <li><a href="#none">圖片下載</a></li> </ul> </li> <li class="level1"> <a href="#none">螞蟻部落</a> <ul class="level2"> <li><a href="#none">前端專區</a></li> <li><a href="#none">特效專區</a></li> <li><a href="#none">站長交流</a></li> <li><a href="#none">管理專區</a></li> </ul> </li> </ul> </div> </body> </html>
上面的代碼實現了垂直導航菜單效果,下麵介紹一下它的實現過程。
一.實現過程分解:
1.<div class="box"></div>最外層的box元素能夠將整個導航欄實現了水平居中效果,css代碼如下:
.box{ width:150px; margin:0 auto; }
2.摺疊菜單的結構佈局:
<li class="level1"> <a href="#none">前端專區</a> <ul class="level2"> <li><a href="#none">html教程</a></li> <li><a href="#none" >css教程</a></li> <li><a href="#none" >div教程</a></li> <li><a href="#none" >jquery教程</a></li> </ul> </li>
上面的代碼是摺疊菜單的結構,作為主導航的鏈接a被使用display:block設置為塊級元素,這樣就可以設置它的尺寸,同時在預設狀態下,作為二級菜單的ul元素是隱藏的,也就是說二級菜單是摺疊的。
一.jquery代碼註釋:
1.$(document).ready(function(){}),當文檔結構完全載入完畢再去執行函數中的代碼。
2.$(".level1 > a").click(function(){}),為class屬性值為level1元素下的一級a元素註冊click事件處理函數,也就是為主導航鏈接註冊事件處理函數。
3.$(this).addClass("current").next().show().parent().siblings().children("a").removeClass("current").next().hide(),這段代碼是一個鏈式調用效果,實現了點擊主導航鏈接實現當前點擊主導航後面的二級菜單展開,其他菜單摺疊效果。
4.return false,取消主導航鏈接的跳轉效果。
二.相關閱讀:
1.addClass()函數可以參閱jQuery的addClass()方法一章節。
2.next()函數可以參閱jQuery的next()函數的使用詳解一章節。
3.parent()函數可以參閱jQuery的parent()方法一章節。
4.show()函數可以參閱jQuery的show()方法一章節。
5.siblings()函數可以參閱jQuery的siblings()方法一章節。
6.children屬性可以參閱javascript的children屬性的用法一章節。
7.removeClass()函數可以參閱jQuery的removeClass()方法一章節。
原文地址是:http://www.softwhy.com/forum.php?mod=viewthread&tid=15271
更多內容可以參閱:http://www.softwhy.com/jquery/