jQuery实现折叠、展开的菜单组效果代码


Posted in Javascript onSeptember 16, 2015

本文实例讲述了jQuery实现折叠、展开的菜单组效果代码。分享给大家供大家参考。具体如下:

这是一款jQuery实现的漂亮的竖向折叠菜单组,初次运行的时候请刷新一下页面,让jQ载入,这款菜单应用广泛,可用到后台左侧,网站前台也可以用,发现自腾讯微博开放平台,分享给大家一起研究吧。提示:如果有错误,请刷新页面。

运行效果截图如下:

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>一个展开合拢的菜单效果</title>
<script type="text/javascript" src="jquery-1.6.2.min.js"></script>
<style>
* { margin:0; padding:0; }
ul,li { list-style:none; }
.catalog { width:164px; margin:0 auto;}
.t1 { height:4px; background:url(images/bg_catalog.gif) left top no-repeat; }
.t2 { background:url(images/bg_catalog.gif) -164px top repeat-y; }
.t3 { height:4px; background:url(images/bg_catalog.gif) left bottom no-repeat; }
.t2 h2 { height:81px; background:url(images/bg_catalog_logo.gif) center no-repeat; text-indent:-9999px; }
.t2 h3 { heigth:36px; line-height:36px; margin:0 1px; text-indent:26px; background:url(images/bg_catalog_icon.gif) no-repeat 13px 14px; font-size:14px; border-top:1px solid #fFF; }
.t2 ul { padding:10px 0; font-size:12px; }
.t2 li { text-indent:27px; height:30px; line-height:30px; }
.selected { display:block;}
.unselected {display:none;}
</style>
</head>
<body>
<div class="re_left">
<div class="catalog">
<div class="t1"></div> 
<div class="t2">
 <h2>资源</h2>
 <h3><a href="javascript:void(0);" src="#">平台使用说明</a></h3>
 <ul class="unselected">
 <li><a href="#">平台介绍</a></li>
 <li><a href="#">应用开发说明</a></li>
 <li><a href="#">应用审核流程</a></li>
 <li style="display:none;"><a href="#">成功案例</a></li>
 <li><a href="#">开发者协议</a></li>
 </ul>
 <h3><a href="javascript:void(0);" src="#">API说明</a></h3>
 <ul class="unselected">
 <li><a href="#">API文档</a></li>
 <li><a href="#">Oauth授权说明</a></li>
 <li><a href="#">API调用权限</a></li>
 </ul>
 <h3><a href="javascript:void(0);" src="#">SDK及资源下载</a></h3>
 <ul class="unselected">
 <li><a href="#">SDK下载</a></li>
 <li><a href="#">视觉素材下载</a></li>
 </ul>
 <h3><a href="javascript:void(0);" src="#">帮助中心</a></h3>
 <ul class="unselected">
 <li><a href="#">常见问题解答</a></li>
 <li><a href="#">返回错误码说明</a></li>
 </ul>
</div>
<div class="t3"></div>
</div>
</div>
<script type="text/javascript">
 $(document).ready(function(){
 var catalogIndex=[0,0];
 if (catalogIndex[0]==2){catalogIndex[0]=3;}
 else if(catalogIndex[0]==3){catalogIndex[0]=2;}
 if(catalogIndex.length==0){catalogIndex=[0,0];}
 $(".re_left .catalog h3 a").each(function(){
  $(this).attr("src",$(this).attr("href"));
  });
 $(".re_left .catalog").find("ul").css("border-bottom",0).end().find("h3:eq("+catalogIndex[0]+")").addClass("open").find("a").attr("href","javascript:void(0);").end().next().css("display","block").find("li:eq("+(catalogIndex[1]-1==-1?9999:catalogIndex[1]-1)+")").addClass("active");$(".re_left .catalog").find("h3").last().css("border-bottom-width","0");});
$(".re_left .catalog").find("h3").bind("click",function(){
  if ($(this).hasClass("open"))
  {
  if ($(this).next().find(".active").size()==0)
  {
   $(this).next().slideUp(500,function(){
   $(this).prev().removeClass("open");
   }); 
  }
  else
  {
   $(this).next().slideUp(500,function(){
   $(this).prev().removeClass("open");
   //window.location.href=$(this).prev().find("a").attr("src");
   });
  }
  }
  else
  {
  $(this).parent().find("ul").slideUp("slow").end().find("h3").removeClass("open");
  $(this).addClass("open").next().slideDown(500,function(){
  if ($(this).nextAll("h3").size()>0)
  {$(this).parent().find("h3").last().css("border-bottom-width","1px");}
  else
  {$(this).parent().find("h3").last().css("border-bottom-width","0");}
  window.location.href=$(this).prev().find("a").attr("src");
  });
  }
  return false;
}); 
</script>
<br><div align="center">提示:如果有错误,请刷新页面。</div>
</body>
</html>

希望本文所述对大家的jQuery程序设计有所帮助。

Javascript 相关文章推荐
JS中对象与字符串的互相转换详解
May 20 Javascript
jquery获取form表单input元素值的简单实例
May 30 Javascript
浅谈js里面的InttoStr和StrtoInt
Jun 14 Javascript
JS遍历ul下的li点击弹出li的索引的实现方法
Sep 19 Javascript
jquery滚动条插件(可以自定义)
Dec 11 Javascript
d3.js实现立体柱图的方法详解
Apr 28 Javascript
JavaScript 下载svg图片为png格式
Jun 21 Javascript
JS数组去重的6种方法完整实例
Dec 08 Javascript
CryptoJS中AES实现前后端通用加解密技术
Dec 18 Javascript
JS实现点击li标签弹出对应的索引功能【案例】
Feb 18 Javascript
Express结合Webpack的全栈自动刷新
May 23 Javascript
详解JavaScript类型判断的四种方法
Oct 21 Javascript
ANGULARJS中使用JQUERY分页控件
Sep 16 #Javascript
js实现tab切换效果实例
Sep 16 #Javascript
JS实现自动固定顶部的悬浮菜单栏效果
Sep 16 #Javascript
jQuery图片轮播滚动切换代码分享
Apr 20 #Javascript
JS实现光滑展开合拢的菜单效果代码
Sep 16 #Javascript
jQuery实现两款有动画功能的导航菜单代码
Sep 16 #Javascript
javascript中的previousSibling和nextSibling的正确用法
Sep 16 #Javascript
You might like
PHP中调用JAVA
2006/10/09 PHP
pdo中使用参数化查询sql
2011/08/11 PHP
完善CodeIgniter在IDE中代码提示功能的方法
2014/07/19 PHP
php读取flash文件高宽帧数背景颜色的方法
2015/01/06 PHP
php建立Ftp连接的方法
2015/03/07 PHP
利用PHP生成CSV文件简单示例
2016/12/21 PHP
javascript编程起步(第六课)
2007/02/27 Javascript
js实现弹出窗口、页面变成灰色并不可操作的例子分享
2014/05/10 Javascript
js绘制圆形和矩形的方法
2015/08/05 Javascript
jQuery网页右侧广告跟随滚动代码分享
2020/04/20 Javascript
基于JavaScript实现简单的随机抽奖小程序
2016/01/05 Javascript
JavaScript数据结构之二叉树的计数算法示例
2017/04/13 Javascript
JS之if语句对接事件动作逻辑(详解)
2017/06/28 Javascript
windows系统下更新nodejs版本的方案
2017/11/24 NodeJs
利用Javascript实现一套自定义事件机制
2017/12/14 Javascript
JavaScript实现职责链模式概述
2018/01/25 Javascript
微信小程序模版渲染详解
2018/01/26 Javascript
原生JS+HTML5实现跟随鼠标一起流动的粒子动画效果
2018/05/03 Javascript
vue.js实现的经典计算器/科学计算器功能示例
2018/07/11 Javascript
elementUI中Table表格问题的解决方法
2018/12/04 Javascript
js纯前端实现腾讯cos文件上传功能的示例代码
2019/05/14 Javascript
Vue两个版本的区别和使用方法(更深层次了解)
2020/02/16 Javascript
Python时间戳与时间字符串互相转换实例代码
2013/11/28 Python
用Python中的turtle模块画图两只小羊方法
2019/04/09 Python
利用pyinstaller打包exe文件的基本教程
2019/05/02 Python
24式加速你的Python(小结)
2019/06/13 Python
Python StringIO如何在内存中读写str
2020/01/07 Python
Python解释器以及PyCharm的安装教程图文详解
2020/02/26 Python
Python参数传递实现过程及原理详解
2020/05/14 Python
宝塔面板成功部署Django项目流程(图文)
2020/06/22 Python
python 装饰器重要在哪
2021/02/14 Python
CSS3中的弹性布局em运用入门详解 1em等于多少像素
2021/02/08 HTML / CSS
2014年五一劳动节社区活动总结
2014/04/14 职场文书
个人校本研修方案
2014/05/26 职场文书
分享一个vue实现的记事本功能案例
2022/04/11 Vue.js
Win10鼠标宏怎么设置?win10系统鼠标宏的设置方法
2022/08/14 数码科技