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从头学起第三讲
Jul 06 Javascript
javaScript NameSpace 简单说明介绍
Jul 18 Javascript
jQuery实现图片放大预览实现原理及代码
Sep 12 Javascript
Javascript简单实现可拖动的div
Oct 22 Javascript
javascript实现在某个元素上阻止鼠标右键事件的方法和实例
Aug 12 Javascript
Spring MVC中Ajax实现二级联动的简单实例
Jul 06 Javascript
js删除数组元素、清空数组的简单方法(必看)
Jul 27 Javascript
原生JS实现图片网格式渐显、渐隐效果
Jun 05 Javascript
利用vue+elementUI实现部分引入组件的方法详解
Nov 22 Javascript
解决vue热替换失效的根本原因
Sep 19 Javascript
详解写好JS条件语句的5条守则
Feb 28 Javascript
vue+elementui实现点击table中的单元格触发事件--弹框
Jul 18 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
CI框架给视图添加动态数据
2014/12/01 PHP
浅析Yii2 GridView实现下拉搜索教程
2016/04/22 PHP
centos下file_put_contents()无法写入文件的原因及解决方法
2017/04/01 PHP
javascript定时保存表单数据的代码
2011/03/17 Javascript
JavaScript实现计算字符串中出现次数最多的字符和出现的次数
2015/03/12 Javascript
JS实现的鼠标跟随代码(卡通手型点击效果)
2015/10/26 Javascript
JS获取时间的相关函数及时间戳与时间日期之间的转换
2016/02/04 Javascript
Node.js实现数据推送
2016/04/14 Javascript
jQuery实现页面下拉100像素出现悬浮窗口的方法
2016/09/05 Javascript
深入理解选择框脚本[推荐]
2016/12/13 Javascript
基于Bootstrap框架实现图片切换
2017/03/10 Javascript
angular.extend方法的具体使用
2017/09/14 Javascript
React.js绑定this的5种方法(小结)
2018/06/05 Javascript
layui监听下拉选框选中值变化的方法(包含监听普通下拉选框)
2019/09/24 Javascript
jQuery实现的上拉刷新功能组件示例
2020/05/01 jQuery
JQuery使用数组遍历跳出each循环
2020/09/01 jQuery
vue+node 实现视频在线播放的实例代码
2020/10/19 Javascript
Python贪吃蛇游戏编写代码
2020/10/26 Python
python3实现UDP协议的服务器和客户端
2017/06/14 Python
Python 异常处理的实例详解
2017/09/11 Python
完美解决安装完tensorflow后pip无法使用的问题
2018/06/11 Python
详解如何管理多个Python版本和虚拟环境
2019/05/10 Python
Python实现投影法分割图像示例(二)
2020/01/17 Python
Python web如何在IIS发布应用过程解析
2020/05/27 Python
英国品牌男装折扣网站:Brown Bag
2018/03/08 全球购物
物流业务员岗位职责
2014/02/08 职场文书
学术会议主持词
2014/03/17 职场文书
消防安全责任书
2014/04/14 职场文书
教师批评与自我批评发言稿
2014/10/15 职场文书
2014社会治安综合治理工作总结
2014/12/04 职场文书
服务员岗位职责范本
2015/04/09 职场文书
工会经费申请报告
2015/05/15 职场文书
goland 恢复已更改文件的操作
2021/04/28 Golang
浅谈Redis主从复制以及主从复制原理
2021/05/29 Redis
MySQL 服务和数据库管理
2021/11/11 MySQL
PostgreSQL数据库创建并使用视图以及子查询
2022/04/11 PostgreSQL