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插件开发基础简单介绍
Jan 07 Javascript
删除select中所有option选项jquery代码
Aug 12 Javascript
JS判断变量是否为空判断是否null
Jul 25 Javascript
Jquery修改页面标题title其它JS失效的解决方法
Oct 31 Javascript
一个检测表单数据的JavaScript实例
Oct 31 Javascript
javascript 动态创建表格
Jan 08 Javascript
Javascript基础教程之数据类型转换
Jan 18 Javascript
常见JS验证脚本汇总
Dec 01 Javascript
利用Angularjs和原生JS分别实现动态效果的输入框
Sep 01 Javascript
JavaScript实现自动切换图片代码
Oct 11 Javascript
js实现ATM机存取款功能
Oct 27 Javascript
Vue如何循环提取对象数组中的值
Nov 18 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 ajax 静态分页过程形式
2011/09/02 PHP
PHP实现的曲线统计图表示例
2016/11/10 PHP
浅谈htmlentities 、htmlspecialchars、addslashes的使用方法
2016/12/09 PHP
PHP搭建大文件切割分块上传功能示例
2017/01/04 PHP
PHP计算近1年的所有月份
2017/03/13 PHP
laravel 解决Eloquent ORM的save方法无法插入数据的问题
2019/10/21 PHP
iframe自适应宽度、高度 ie6 7 8,firefox 3.86下测试通过
2010/07/29 Javascript
JS字符串函数扩展代码
2011/09/13 Javascript
使用 vue-i18n 切换中英文效果
2018/05/23 Javascript
vue侧边栏动态生成下级菜单的方法
2018/09/07 Javascript
微信小程序返回上一页传参并刷新过程解析
2019/12/13 Javascript
JS实现纵向轮播图(初级版)
2020/01/18 Javascript
vue总线机制(bus)知识点详解
2020/05/10 Javascript
解决vue cli4升级sass-loader(v8)后报错问题
2020/07/30 Javascript
[39:00]Optic vs VP 2018国际邀请赛淘汰赛BO3 第三场 8.24
2018/08/25 DOTA
Python中for循环控制语句用法实例
2015/06/02 Python
Python第三方库的安装方法总结
2016/06/06 Python
python中print()函数的“,”与java中System.out.print()函数中的“+”功能详解
2017/11/24 Python
Python简单实现阿拉伯数字和罗马数字的互相转换功能示例
2018/04/17 Python
对python GUI实现完美进度条的示例详解
2018/12/13 Python
python三大神器之fabric使用教程
2019/06/10 Python
python中for循环变量作用域及用法详解
2019/11/05 Python
Python中import导入不同目录的模块方法详解
2020/02/18 Python
Python: glob匹配文件的操作
2020/12/11 Python
Python 2.6.6升级到Python2.7.15的详细步骤
2020/12/14 Python
美国廉价机票预订网站:Cheapfaremart
2018/04/28 全球购物
舒适的豪华鞋:Taryn Rose
2018/05/03 全球购物
护理职业应聘自荐书
2013/09/29 职场文书
会计专业大学生职业生涯规划范文
2014/01/11 职场文书
优秀教师单行材料
2014/12/16 职场文书
清洁工工作总结
2015/08/11 职场文书
学校扫黄打非工作总结
2015/10/15 职场文书
用JS写一个发布订阅模式
2021/11/07 Javascript
SQL优化老出错,那是你没弄明白MySQL解释计划用法
2021/11/27 MySQL
高性能跳频抗干扰宽带自组网电台
2022/02/18 无线电
Fluentd搭建日志收集服务
2022/09/23 Servers