你的位置:首页 > Java教程

[Java教程]jquery实现的点击可以展开折叠的垂直导航菜单


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 ></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/