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 相关文章推荐
jquery1.4.2 for Visual studio 2010 模板文件
Jul 14 Javascript
JS通过相同的name进行表格求和代码
Aug 18 Javascript
node.js中的dns.getServers方法使用说明
Dec 08 Javascript
JavaScript转换二进制编码为ASCII码的方法
Apr 16 Javascript
Jquery实现顶部弹出框特效
Aug 08 Javascript
JavaScript提高性能知识点汇总
Jan 15 Javascript
AngularJS入门教程之AngularJS 模板
Aug 18 Javascript
jQuery元素选择器实例代码
Feb 06 Javascript
JavaScript比较两个数组的内容是否相同(推荐)
May 02 Javascript
Bootstrap标签页(Tab)插件切换echarts不显示问题的解决
Jul 13 Javascript
微信小程序实现topBar底部选择栏效果
Jul 20 Javascript
three.js如何实现3D动态文字效果
Mar 03 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防盗链代码实例
2014/08/27 PHP
PHP闭包函数详解
2016/02/13 PHP
Extjs Gird 支持中文拼音排序实现代码
2013/04/15 Javascript
jquery Tab效果和动态加载的简单实例
2013/12/11 Javascript
JS常用表单验证方法总结
2014/05/22 Javascript
jQuery插件multiScroll实现全屏鼠标滚动切换页面特效
2015/04/12 Javascript
Javascript类型系统之String字符串类型详解
2016/06/21 Javascript
基于JS实现回到页面顶部的五种写法(从实现到增强)
2016/09/03 Javascript
实例解析jQuery工具函数
2016/12/01 Javascript
jquery实现简单的瀑布流布局
2016/12/11 Javascript
bootstrap css样式之表单
2017/01/19 Javascript
canvas雪花效果核心代码分享
2017/02/19 Javascript
基于HTML5+JS实现本地图片裁剪并上传功能
2017/03/24 Javascript
详解Angular2组件之间如何通信
2017/06/22 Javascript
详解Vue.js之视图和数据的双向绑定(v-model)
2017/06/23 Javascript
webpack配置之后端渲染详解
2017/10/26 Javascript
基于Vue实现拖拽效果
2018/04/27 Javascript
微信小程序自定义可滑动日历界面
2018/12/28 Javascript
解决layui laydate 时间控件一闪而过的问题
2019/09/28 Javascript
[01:38]DOTA2第二届亚洲邀请赛中国区预选赛出线战队晋级之路
2017/01/17 DOTA
Python搭建APNS苹果推送通知推送服务的相关模块使用指南
2016/06/02 Python
打包发布Python模块的方法详解
2016/09/18 Python
利用django-suit模板添加自定义的菜单、页面及设置访问权限
2018/07/13 Python
python单向循环链表原理与实现方法示例
2019/12/03 Python
新手学python应该下哪个版本
2020/06/11 Python
python中的split、rsplit、splitlines用法说明
2020/10/23 Python
详解使用canvas保存网页为pdf文件支持跨域
2018/11/23 HTML / CSS
用canvas实现图片滤镜效果附演示
2013/11/05 HTML / CSS
巴西最大的家具及装饰用品店:Mobly
2017/10/11 全球购物
阿拉伯时尚购物网站:Nisnass
2021/02/07 全球购物
英国马莎百货印度官网:Marks & Spencer印度
2020/10/08 全球购物
Servlet都有哪些方法?主要作用是什么?
2014/03/04 面试题
学期自我评价
2014/01/27 职场文书
红领巾广播站广播稿
2014/02/01 职场文书
个人先进事迹材料范文
2014/12/29 职场文书
导游词之山西关帝庙
2019/11/01 职场文书