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 相关文章推荐
JsEasy简介 JsEasy是什么?与下载
Mar 07 Javascript
Javascript typeof 用法
Dec 28 Javascript
JavaScript 申明函数的三种方法 每个函数就是一个对象(一)
Dec 04 Javascript
基于jquery的一个浮动框(扩展性比较好 )
Aug 27 Javascript
8款非常棒的响应式jQuery 幻灯片插件推荐
Feb 02 Javascript
基于javascript滚动图片具体实现
Nov 18 Javascript
Node.js(安装,启动,测试)
Jun 09 Javascript
jQuery Ajax使用FormData对象上传文件的方法
Sep 07 Javascript
简单实现js点击展开二级菜单功能
May 16 Javascript
javascript实现Java中的Map对象功能的实例详解
Aug 21 Javascript
js对象实例详解(JavaScript对象深度剖析,深度理解js对象)
Sep 21 Javascript
微信小程序开发之好友列表字母列表跳转对应位置
Sep 26 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 array_intersect()函数使用代码
2009/01/14 PHP
php ss7.5的数据调用 (笔记)
2010/03/08 PHP
PHP 图片上传代码
2011/09/13 PHP
详解PHP匿名函数与注意事项
2016/03/29 PHP
PHP单文件上传原理及上传函数的封装操作示例
2019/09/02 PHP
JS 自动完成 AutoComplete(Ajax 查询)
2009/07/07 Javascript
javascript中比较字符串是否相等的方法
2013/07/23 Javascript
浅谈javascript原型链与继承
2015/07/13 Javascript
解决JS请求服务器gbk文件乱码的问题
2015/10/16 Javascript
javascript实现五星评分功能
2015/11/10 Javascript
JavaScript获取IP获取的是IPV6 如何校验
2016/06/12 Javascript
实例讲解JavaScript中call、apply、bind方法的异同
2016/09/13 Javascript
原生js验证简洁注册登录页面
2016/12/17 Javascript
JS表单传值和URL编码转换
2018/03/03 Javascript
JS文件中加载jquery.js的实例代码
2018/05/05 jQuery
vue操作动画的记录animate.css实例代码
2019/04/26 Javascript
Vue路由切换页面不更新问题解决方案
2020/07/10 Javascript
vant-ui组件调用Dialog弹窗异步关闭操作
2020/11/04 Javascript
[03:17]2014DOTA2 国际邀请赛中国区预选赛 四强专访
2014/05/23 DOTA
python解析xml文件实例分析
2015/05/27 Python
Python 常用 PEP8 编码规范详解
2017/01/22 Python
Python爬虫PyQuery库基本用法入门教程
2018/08/04 Python
python 使用值来排序一个字典的方法
2018/11/16 Python
Python IDE Pycharm中的快捷键列表用法
2019/08/08 Python
Pycharm IDE的安装和使用教程详解
2020/04/30 Python
详解Python yaml模块
2020/09/23 Python
css3实现wifi信号逐渐增强效果实例
2017/08/09 HTML / CSS
法国奢华女性时尚配饰网上商店:Monnier Frères
2016/08/27 全球购物
美国非常受欢迎的Spa品牌:Bliss必列斯
2018/04/10 全球购物
英国领先的大码时装品牌之一:Elvi
2018/08/26 全球购物
英国Iceland杂货店:网上食品购物
2020/12/16 全球购物
金融行业职业生涯规划范文
2014/01/17 职场文书
幼儿教师小班个人总结
2015/02/05 职场文书
导游词之重庆钓鱼城
2019/09/19 职场文书
golang 生成对应的数据表struct定义操作
2021/04/28 Golang
从零开始在Centos7上部署SpringBoot项目
2022/04/07 Servers