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 相关文章推荐
Jquery通过Ajax访问XML数据的小例子
Nov 18 Javascript
IE中鼠标经过option触发mouseout的解决方法
Jan 29 Javascript
js基于面向对象实现网页TAB选项卡菜单效果代码
Sep 09 Javascript
JAVASCRIPT代码编写俄罗斯方块网页版
Nov 26 Javascript
前端弹出对话框 js实现ajax交互
Sep 09 Javascript
AngularJs ng-route路由详解及实例代码
Sep 14 Javascript
JS 动态加载js文件和css文件 同步/异步的两种简单方式
Sep 23 Javascript
详解前端构建工具gulpjs的使用介绍及技巧
Jan 19 Javascript
JS正则替换去空格的方法
Mar 24 Javascript
jQuery实现切换隐藏与显示同时切换图标功能
Oct 29 jQuery
Angular实现的简单查询天气预报功能示例
Dec 27 Javascript
基于vue-ssr服务端渲染入门详解
Jan 08 Javascript
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
Zend公司全球首推PHP认证
2006/10/09 PHP
PHP自动更新新闻DIY
2006/10/09 PHP
CodeIgniter错误mysql_connect(): No such file or directory解决方法
2014/09/06 PHP
thinkphp实现附件上传功能
2017/05/26 PHP
PHP下用Swoole实现Actor并发模型的方法
2019/06/12 PHP
jQuery学习笔记之DOM对象和jQuery对象
2010/12/22 Javascript
jquery中交替点击事件toggle方法的使用示例
2013/12/08 Javascript
13 款最热门的 jQuery 图像 360 度旋转插件推荐
2014/12/09 Javascript
js运动应用实例解析
2015/12/28 Javascript
Bootstrap表单布局样式代码
2016/05/31 Javascript
详解支持Angular 2的表格控件
2017/01/19 Javascript
如何去除富文本中的html标签及vue、react、微信小程序中的过滤器
2018/11/21 Javascript
JS实现获取自定义属性data值的方法示例
2018/12/19 Javascript
JavaScript+HTML5 canvas实现放大镜效果完整示例
2019/05/15 Javascript
JavaScript函数式编程(Functional Programming)高阶函数(Higher order functions)用法分析
2019/05/22 Javascript
ES6 Promise对象的应用实例分析
2019/06/27 Javascript
vue 实现一个简单的全局调用弹窗案例
2020/09/10 Javascript
一篇超完整的Vue新手入门指导教程
2020/11/18 Vue.js
python基础教程之对象和类的实际运用
2014/08/29 Python
Python中内置数据类型list,tuple,dict,set的区别和用法
2015/12/14 Python
深入解析Python编程中super关键字的用法
2016/06/24 Python
Python入门_浅谈逻辑判断与运算符
2017/05/16 Python
python如何实现异步调用函数执行
2019/07/08 Python
浅谈django url请求与数据库连接池的共享问题
2019/08/29 Python
Python实现序列化及csv文件读取
2020/01/19 Python
Pytorch转tflite方式
2020/05/25 Python
python框架flask入门之环境搭建及开启调试
2020/06/07 Python
Python 数据的累加与统计的示例代码
2020/08/03 Python
大学系主任推荐信范文
2013/12/24 职场文书
单位人事专员介绍信
2014/01/11 职场文书
公司企业表扬信
2014/01/11 职场文书
党委班子对照检查材料
2014/08/19 职场文书
英语投诉信范文
2015/07/03 职场文书
企业安全生产检查制度
2015/08/06 职场文书
《红领巾真好》教学反思
2016/02/16 职场文书
MySQL系列之五 视图、存储函数、存储过程、触发器
2021/07/02 MySQL