jquery实现具有收缩功能的垂直导航菜单
本文介绍一种比较常见的导航菜单是如何实现的,它具有垂直结构,点击导航主标题可以展开或者折叠二级菜单。
代码实例如下:
<!DOCTYPEhtml> <html> <head> <metacharset="utf-8"> <title>垂直导航菜单</title> <styletype="text/css"> body{ margin:0; padding:0012px0; font-size:12px; line-height:22px; font-family:"\5b8b\4f53","ArialNarrow"; 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:0auto; } .menu{ overflow:hidden; border-color:#C4D5DF; border-style:solid; border-width:01px1px; } .menuli.level1a{ display:block; height:28px; line-height:28px; background:#EBF3F8; font-weight:700; color:#5893B7; text-indent:14px; border-top:1pxsolid#C4D5DF; } .menuli.level1a:hover{ text-decoration:none; } .menuli.level1a.current{ background:#B1D7EF; } .menuliul{ overflow:hidden; } .menuliul.level2{ display:none; } .menuliul.level2lia{ display:block; height:28px; line-height:28px; background:#ffffff; font-weight:400; color:#42556B; text-indent:18px; border-top:0pxsolid#ffffff; overflow:hidden; } .menuliul.level2lia:hover{ color:#f60; } </style> <scriptsrc="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script> <scripttype="text/javascript"> $(document).ready(function(){ $(".level1>a").click(function(){ $(this).addClass("current") .next().show() .parent().siblings().children("a").removeClass("current") .next().hide(); returnfalse; }); }); </script> </head> <body> <divclass="box"> <ulclass="menu"> <liclass="level1"> <ahref="#none">前端专区</a> <ulclass="level2"> <li><ahref="#none">html教程</a></li> <li><ahref="#none">css教程</a></li> <li><ahref="#none">div教程</a></li> <li><ahref="#none">jquery教程</a></li> </ul> </li> <liclass="level1"> <ahref="#none">资源专区</a> <ulclass="level2"> <li><ahref="#none">特效下载</a></li> <li><ahref="#none">电脑特效</a></li> <li><ahref="#none">手机特效</a></li> <li><ahref="#none">图片下载</a></li> </ul> </li> <liclass="level1"> <ahref="#none">蚂蚁部落</a> <ulclass="level2"> <li><ahref="#none">前端专区</a></li> <li><ahref="#none">特效专区</a></li> <li><ahref="#none">站长交流</a></li> <li><ahref="#none">管理专区</a></li> </ul> </li> </ul> </div> </body> </html>
上面的代码实现了垂直导航菜单效果,下面介绍一下它的实现过程。
一.实现过程分解:
1.<divclass="box"></div>最外层的box元素能够将整个导航栏实现了水平居中效果,css代码如下:
.box{ width:150px; margin:0auto; }
2.折叠菜单的结构布局:
<liclass="level1"> <ahref="#none">前端专区</a> <ulclass="level2"> <li><ahref="#none">html教程</a></li> <li><ahref="#none">css教程</a></li> <li><ahref="#none">div教程</a></li> <li><ahref="#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.returnfalse,取消主导航链接的跳转效果。
以上就是本文的全部内容,希望对大家学习jquery程序设计有所帮助。