jquery实现具有收缩功能的垂直导航菜单
作者:bea
本文介绍一种比较常见的导航菜单是如何实现的,它具有垂直结构,点击导航主标题可以展开或者折叠二级菜单。
代码实例如下:
<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<title>垂直导航菜单</title>
<style type="text/css">
body{
margin:0;
padding:0 0 12px 0;
font-size:12px;
line-height:22px;
font-family:"5b8b4f53", "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,取消主导航链接的跳转效果。
以上就是本文的全部内容,希望对大家学习jquery程序设计有所帮助。
猜你喜欢
您可能感兴趣的文章:
- 解析Node.js异常处理中domain模块的使用方法
- jQuery Timelinr实现垂直水平时间轴插件(附源码下载)
- 深入浅析AngularJS和DataModel
- Javascript中的Prototype到底是什么
- 剖析Node.js异步编程中的回调与代码设计模式
- 使用Node.js处理前端代码文件的编码问题
- 让图片跳跃起来 javascript图片轮播特效
- Node.js本地文件操作之文件拷贝与目录遍历的方法
- 详解Node.js包的工程目录与NPM包管理器的使用
- javascript每日必学之运算符
- 解析Node.js基于模块和包的代码部署方式
- javascript每日必学之基础入门
- 快速掌握Node.js环境的安装与运行方法
- js实现异步循环实现代码
- JavaScript实现跑马灯抽奖活动实例代码解析与优化(二)
- JavaScript实现跑马灯抽奖活动实例代码解析与优化(一)
- javascript HTML+CSS实现经典橙色导航菜单
- JavaScript中使用数组方法汇总
- jquery拖拽排序简单实现方法(效果增强版)