jQuery实现带动画效果的多级下拉菜单代码


Posted in Javascript onSeptember 08, 2015

本文实例讲述了jQuery实现带动画效果的多级下拉菜单代码。分享给大家供大家参考。具体如下:

这是一款基于jQuery实现的多级下拉菜单,带动画效果,所有的元素以ul li ul li ul li的循环格式嵌套 如果没有下级分类 就用li a结束嵌套,代码内不用toggle()的原因是为了在收缩菜单的时候同时也将该菜单的下级菜单以后的所有元素都隐藏。

运行效果截图如下:

jQuery实现带动画效果的多级下拉菜单代码

在线演示地址如下:

具体代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>jQuery多级下拉菜单</title>
<script language="javascript" type="text/javascript" src="jquery1.3.2.js"></script>
<style type="text/css">
ul,li{
list-style:none;
font-size:12px;
line-height:20px;
width:80px;
margin:0;
padding-left:6px;
}
.child{
 display:none;
}
.nav a{
display:block;
color:#5c84c1;
padding-left:22px;
}
</style>
<script language="javascript" type="text/javascript">
 //说明 所有的元素以ul li ul li ul li的循环格式嵌套 如果没有下级分类 就用li a结束嵌套
 $(document).ready(function(){
 //$(".nav ul li").children("ul").hide();
  $(".nav").find("li").not(":has(ul)").children("a").css({textDecoration:"none",color:"#333",background:"none"})
  .click(function(){
  $(this).get(0).location.href="'"+$(this).attr("href")+"'";
  });
 $(".nav").find("li:has(ul)").children("a").css({background:"url(images/statu_close.gif) no-repeat left top;"})
  .click(function(){
  if($(this).next("ul").is(":hidden")){  
  $(this).next("ul").slideDown("slow");
  if($(this).parent("li").siblings("li").children("ul").is(":visible")){
  $(this).parent("li").siblings("li").find("ul").slideUp("1000");
  $(this).parent("li").siblings("li:has(ul)").children("a").css({background:"url(images/statu_close.gif) no-repeat left top;"})
   .end().find("li:has(ul)").children("a").css({background:"url(images/statu_close.gif) no-repeat left top;"});}
  $(this).css({background:"url(images/statu_open.gif) no-repeat left top;"});
  return false;
 }else{
  $(this).next("ul").slideUp("normal"); 
  //不用toggle()的原因是为了在收缩菜单的时候同时也将该菜单的下级菜单以后的所有元素都隐藏
  $(this).css({background:"url(images/statu_close.gif) no-repeat left top;"});
  $(this).next("ul").children("li").find("ul").fadeOut("normal");
  $(this).next("ul").find("li:has(ul)").children("a").css({background:"url(images/statu_close.gif) no-repeat left top;"});
  return false;
  }
  });
 });
</script>
</head>
<body>
<div class="nav">
 <ul>
 <li>
  <a href="#">一级菜单1</a>
  <ul class="child">
  <li>
   <a href="#">二级菜单1</a>
   </li>
   <li>
   <a href="#">二级菜单1</a>
   <ul class="child">
   <li>
   <a href="#">三级菜单1</a>
   </li>
   <li>
   <a href="#">三级菜单1</a>
   </li>
   </ul>
   </li>
   <li>
   <a href="#">二级菜单2</a>
   <ul class="child">
   <li>
   <a href="#">三级菜单2</a>
   </li>
   <li>
   <a href="#">三级菜单2</a>
   <ul class="child">
    <li>
    <a href="#">四级菜单</a>
    </li>
    <li>
    <a href="#">四级菜单1</a>
    </li>
    <li>
    <a href="#">四级菜单1</a>
    <ul class="child">
    <li>
     <a href="#">五级菜单1</a>
     </li>
     <li>
     <a href="#">五级菜单1</a>
     </li>
     <li>
     <a href="#">五级菜单1</a>
     </li>
    </ul>
    </li>
   </ul>
   </li>
   </ul>
   </li>
  </ul>
  </li>
  <li>
  <a href="#">一级菜单2</a>
  <ul class="child">
  <li>
   <a href="#">二级菜单1</a>
   </li>
   <li>
   <a href="#">二级菜单1</a>
   </li>
  </ul> 
  </li>
  <li>
  <a href="#">一级菜单3</a>
  <ul class="child">
  <li>
   <a href="#">二级菜单1</a>
   </li>
   <li>
   <a href="#">二级菜单1</a>
   </li>
  </ul>
  </li>
  <li>
  <a href="#">一级菜单4</a>
  </li>
 </ul>
</div>
</body>
</html>

希望本文所述对大家的jquery程序设计有所帮助。

Javascript 相关文章推荐
JavaScript入门教程(12) js对象化编程
Jan 31 Javascript
JQuery 风格的HTML文本转义
Jul 01 Javascript
js 优化次数过多的循环 考虑到性能问题
Mar 05 Javascript
扩展jquery实现客户端表格的分页、排序功能代码
Mar 16 Javascript
使用JavaScript的ActiveXObject对象检测应用程序是否安装的方法
Apr 15 Javascript
jQuery实现仿腾讯视频列表分页效果的方法
Aug 07 Javascript
ES2015 Symbol 一种绝不重复的值
Dec 25 Javascript
Node.js中如何合并两个复杂对象详解
Dec 31 Javascript
jQuery滚动监听实现商城楼梯式导航效果
Mar 06 Javascript
详解Vue CLI3配置解析之css.extract
Sep 14 Javascript
详解Vue 匿名、具名和作用域插槽的使用方法
Apr 22 Javascript
vue项目打包后路由错误的解决方法
Apr 13 Vue.js
js淡入淡出焦点图幻灯片效果代码分享
Sep 08 #Javascript
JavaScript实现的经典文件树菜单效果
Sep 08 #Javascript
cocos2dx骨骼动画Armature源码剖析(三)
Sep 08 #Javascript
JS实现的另类手风琴效果网页内容切换代码
Sep 08 #Javascript
cocos2dx骨骼动画Armature源码剖析(一)
Sep 08 #Javascript
js带点自动图片轮播幻灯片特效代码分享
Sep 07 #Javascript
jquery实现Slide Out Navigation滑出式菜单效果代码
Sep 07 #Javascript
You might like
php除数取整示例
2014/04/24 PHP
PHP获取mysql数据表的字段名称和详细信息的方法
2014/09/27 PHP
laravel安装zend opcache加速器教程
2015/03/02 PHP
Laravel 5 框架入门(四)完结篇
2015/04/09 PHP
php判断是否连接上网络的方法实例详解
2016/12/14 PHP
PHP7修改的函数
2021/03/09 PHP
jquery 学习笔记一
2010/04/07 Javascript
关于jquery动态增减控件的一些想法和小插件
2010/08/01 Javascript
javascript轻松实现当鼠标移开时已弹出子菜单自动消失
2013/12/29 Javascript
jquery插件jquery.confirm弹出确认消息
2015/12/22 Javascript
基于JS分页控件实现简单美观仿淘宝分页按钮效果
2016/11/07 Javascript
JS实现的几个常用算法
2016/11/12 Javascript
Bootstrap模态框使用详解
2017/02/15 Javascript
react native与webview通信的示例代码
2017/09/25 Javascript
解决 viewer.js 动态更新图片导致无法预览的问题
2019/05/14 Javascript
JS为什么说async/await是generator的语法糖详解
2019/07/11 Javascript
vue@cli3项目模板怎么使用public目录下的静态文件
2020/07/07 Javascript
python复制文件代码实现
2013/12/23 Python
Python抓取百度查询结果的方法
2015/07/08 Python
python实现自动重启本程序的方法
2015/07/09 Python
学习python可以干什么
2019/02/26 Python
Python如何通过百度翻译API实现翻译功能
2020/04/02 Python
简单介绍一下pyinstaller打包以及安全性的实现
2020/06/02 Python
用html5绘制折线图的实例代码
2016/03/25 HTML / CSS
几个SQL的面试题
2014/03/08 面试题
Python面试题集
2012/03/08 面试题
80后职场人的职业生涯规划
2014/03/08 职场文书
2015年度销售个人工作总结
2015/03/31 职场文书
校长一岗双责责任书
2015/05/09 职场文书
责任书范本大全
2015/05/11 职场文书
借条格式范本
2015/05/25 职场文书
公司2015年终工作总结
2015/05/26 职场文书
欢送会主持词
2015/07/01 职场文书
优秀党员先进事迹材料2016
2016/02/29 职场文书
python超详细实现完整学生成绩管理系统
2022/03/17 Python
MySQL三种方式实现递归查询
2022/04/18 MySQL