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 Event学习第二章 Event浏览器兼容性
Feb 07 Javascript
判断目标是否是window,document,和拥有tagName的Element的代码
May 31 Javascript
JQuery获取当前屏幕的高度宽度的实现代码
Jul 12 Javascript
7款风格新颖的jQuery/CSS3菜单导航分享
Apr 23 Javascript
javascript实现数字倒计时特效
Mar 30 Javascript
javascript设计模式Constructor(构造器)模式
Aug 19 Javascript
js阻止移动端页面滚动的两种方法
Jan 25 Javascript
JS实现列表页面隔行变色效果
Mar 25 Javascript
JavaScript设计模式之职责链模式应用示例
Aug 07 Javascript
详解微信小程序与内嵌网页交互实现支付功能
Oct 22 Javascript
新手如何快速理解js异步编程
Jun 24 Javascript
详解小程序横屏方案对比
Jun 28 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
php 中奖概率算法实现代码
2017/01/25 PHP
Mac系统完美安装PHP7详细教程
2017/06/06 PHP
laravel 5.4中实现无限级分类的方法示例
2017/07/27 PHP
PHP实现打包zip并下载功能
2018/06/12 PHP
js活用事件触发对象动作
2008/08/10 Javascript
javascript各浏览器中option元素的表现差异
2011/04/07 Javascript
jquery 卷帘效果实现代码(不同方向)
2013/02/05 Javascript
javascript动态设置样式style实例分析
2015/05/13 Javascript
一张Web前端的思维导图分享
2015/07/03 Javascript
js判断浏览器类型及设备(移动页面开发)
2015/07/30 Javascript
js获取指定字符前/后的字符串简单实例
2016/10/27 Javascript
Angular中自定义Debounce Click指令防止重复点击
2017/07/26 Javascript
Vue组件实现触底判断
2019/06/26 Javascript
微信小程序实现搜索框功能及踩过的坑
2020/06/19 Javascript
JavaScript中数组去重的5种方法
2020/07/04 Javascript
纯Python开发的nosql数据库CodernityDB介绍和使用实例
2014/10/23 Python
Python 运行 shell 获取输出结果的实例
2019/01/07 Python
pyqt 实现为长内容添加滑轮 scrollArea
2019/06/19 Python
快速解决pyqt5窗体关闭后子线程不同时退出的问题
2019/06/19 Python
python 统计文件中的字符串数目示例
2019/12/24 Python
From CSV to SQLite3 by python 导入csv到sqlite实例
2020/02/14 Python
python多进程 主进程和子进程间共享和不共享全局变量实例
2020/04/25 Python
Python直接赋值及深浅拷贝原理详解
2020/09/05 Python
python基于opencv实现人脸识别
2021/01/04 Python
阿迪达斯西班牙官方网站:adidas西班牙
2016/07/21 全球购物
Spongelle官网:美国的创意护肤洗护品牌
2019/05/15 全球购物
C#可否对内存进行直接的操作
2015/02/26 面试题
最新自我评价范文
2013/11/16 职场文书
2014年应届大学生自我评价
2014/01/09 职场文书
会计电算化毕业生自荐信
2014/03/03 职场文书
婚礼主持词开场白
2014/03/13 职场文书
租赁协议书范本
2014/04/22 职场文书
语文高效课堂实施方案
2014/05/03 职场文书
副职竞争上岗演讲稿
2014/05/12 职场文书
缅怀先烈演讲稿
2014/09/03 职场文书
java开发双人五子棋游戏
2022/05/06 Java/Android