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 相关文章推荐
(function(){})()的用法与优点
Mar 11 Javascript
JavaScript监听和禁用浏览器回车事件实例
Jan 31 Javascript
JavaScript中split() 使用方法汇总
Apr 17 Javascript
JS组件Bootstrap Select2使用方法详解
Apr 17 Javascript
Vue列表页渲染优化详解
Jul 24 Javascript
Vue-Router实现组件间跳转的三种方法
Nov 07 Javascript
vue中组件的3种使用方式详解
Mar 23 Javascript
vue组件中watch props根据v-if动态判断并挂载DOM的问题
May 12 Javascript
layer.confirm点击第一个按钮关闭弹出框的方法
Sep 09 Javascript
微信小程序进入广告实现代码实例
Sep 19 Javascript
Vue Router 实现动态路由和常见问题及解决方法
Mar 06 Javascript
JS highcharts动态柱状图原理及实现
Oct 16 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+MYSQL的文章管理系统(二)
2006/10/09 PHP
PHP文件下载类
2006/12/06 PHP
PHP JSON格式数据交互实例代码详解
2011/01/13 PHP
php绘制一条弧线的方法
2015/01/24 PHP
实例讲解YII2中多表关联的使用方法
2017/07/21 PHP
laravel入门知识点整理
2020/09/15 PHP
让FireFox支持innerText的实现代码
2009/12/01 Javascript
Js中的onblur和onfocus事件应用介绍
2013/08/27 Javascript
关闭ie窗口清除Session的解决方法
2014/01/10 Javascript
javascript委托(Delegate)blur和focus用法实例分析
2015/05/26 Javascript
JavaScript数组去重的3种方法和代码实例
2015/07/01 Javascript
JavaScript实现显示函数调用堆栈的方法
2016/04/21 Javascript
JavaScript之DOM_动力节点Java学院整理
2017/07/03 Javascript
简单快速的实现js计算器功能
2017/08/17 Javascript
Vue实现底部侧边工具栏的实例代码
2018/09/03 Javascript
小程序实现人脸识别功能(百度ai)
2018/12/23 Javascript
详解微信小程序之一键复制到剪切板
2019/04/24 Javascript
vue2.0项目集成Cesium的实现方法
2019/07/30 Javascript
使用Vue实现调用接口加载页面初始数据
2019/10/28 Javascript
JavaScript代码实现微博批量取消关注功能
2021/02/05 Javascript
python2.7读取文件夹下所有文件名称及内容的方法
2018/02/24 Python
TensorFlow神经网络优化策略学习
2018/03/09 Python
python中找出numpy array数组的最值及其索引方法
2018/04/17 Python
Numpy中转置transpose、T和swapaxes的实例讲解
2018/04/17 Python
python简单操作excle的方法
2018/09/12 Python
在pytorch中为Module和Tensor指定GPU的例子
2019/08/19 Python
Aquatalia官网:意大利著名鞋履品牌
2019/09/26 全球购物
大一军训感言
2014/01/09 职场文书
小学生暑假家长评语
2014/04/17 职场文书
小学生感恩老师演讲稿
2014/08/28 职场文书
2014年师德师风自我剖析材料
2014/09/27 职场文书
公司租房协议书范本
2014/10/08 职场文书
优秀共产党员事迹材料
2014/12/18 职场文书
详解MongoDB的条件查询和排序
2021/06/23 MongoDB
Pandas数据结构之Series的使用
2022/03/31 Python
win11系统中dhcp服务异常什么意思? Win11 DHCP服务异常修复方法
2022/04/08 数码科技