基于Jquery代码实现手风琴菜单


Posted in Javascript onNovember 19, 2015

先给大家展示效果图:

基于Jquery代码实现手风琴菜单

先看页面代码,列表的嵌套:

<div id="menuDiv">
<ul id="menu">


<li class="parentLi">



<span>B</span>



<ul class="childrenUl">




<li class="childrenLi"><span>C</span></li>




<li class="childrenLi"><span>C</span></li>




<li class="childrenLi"><span>C</span></li>



</ul>


</li>


<li class="parentLi">



<span>B</span>



<ul class="childrenUl">




<li class="childrenLi"><span>C</span></li>




<li class="childrenLi"><span>C</span></li>




<li class="childrenLi"><span>C</span></li>



</ul>


</li>


<li class="parentLi">



<span>B</span>



<ul class="childrenUl">




<li class="childrenLi"><span>C</span></li>




<li class="childrenLi"><span>C</span></li>




<li class="childrenLi"><span>C</span></li>



</ul>


</li>

</ul>
</div>

 css 代码,主要设置背景色和子菜单左边框的样式,设置悬浮和选中的样式,开始设置子菜单不显示(通过 js 设置点击之后再显示):

#menuDiv{
  width: 200px;
  background-color: #029FD4;
}
.parentLi
{
  width: 100%;
  line-height: 40px;
  margin-top: 1px;
  background: #1C73BA;
  color: #fff;
  cursor: pointer;
  font-weight:bolder;
}
.parentLi span
{
  padding: 10px;
}
.parentLi:hover, .selectedParentMenu
{
  background: #0033CC;
}
.childrenUl
{
  background-color: #ffffff;
  display: none;
}
.childrenLi
{
  width: 100%;
  line-height: 30px;
  font-size: .9em;
  margin-top: 1px;
  background: #63B8FF;
  color: #000000;
  padding-left: 15px;
  cursor: pointer;
}
.childrenLi:hover, .selectedChildrenMenu
{
  border-left: 5px #0033CC solid;
  background: #0099CC;
  padding-left: 15px;
}

接下来就是点击事件的代码:

$(".parentLi").click(function(event) {
    $(this).children('.childrenUl').slideToggle();
  });
  $(".childrenLi").click(function(event) {
    event.stopPropagation();
    $(".childrenLi").removeClass('selectedChildrenMenu');
    $(".parentLi").removeClass('selectedParentMenu');
    $(this).parents(".parentLi").addClass('selectedParentMenu');
    $(this).addClass('selectedChildrenMenu');
  });

需要注意的是列表嵌套,会导致事件冒泡,所以在子菜单的点击事件里面要组织冒泡,event.stopPropagation();

以上代码很简单,代码就是注释,jquery手风琴菜单就实现了。需要的朋友快来参考下吧。

Javascript 相关文章推荐
23个超流行的jQuery相册插件整理分享
Apr 25 Javascript
JQuery里面的几种选择器 查找满足条件的元素$(&quot;#控件ID&quot;)
Aug 23 Javascript
JQuery设置和去除disabled属性的5种方法总结
May 16 Javascript
利用jQuery和CSS将背景图片拉伸
Oct 16 Javascript
Javascript基于AJAX回调函数传递参数实例分析
Dec 15 Javascript
Bootstrap每天必学之附加导航(Affix)插件
Apr 25 Javascript
Node.js的基本知识简单汇总
Sep 19 Javascript
mvc 、bootstrap 结合分布式图简单实现分页
Oct 10 Javascript
Javascript中常用类型的格式化方法小结
Dec 26 Javascript
JS中touchstart事件与click事件冲突的解决方法
Mar 12 Javascript
layer iframe 设置关闭按钮的方法
Sep 12 Javascript
使用Layer组件弹出多个对话框(非嵌套)与关闭及刷新的例子
Sep 25 Javascript
跟我学习javascript的作用域与作用域链
Nov 19 #Javascript
每天一篇javascript学习小结(属性定义方法)
Nov 19 #Javascript
理解 JavaScript Scoping &amp; Hoisting(二)
Nov 18 #Javascript
js立即执行函数: (function ( ){})( ) 与 (function ( ){}( )) 有什么区别?
Nov 18 #Javascript
z-blog SyntaxHighlighter 长代码无法换行解决办法(基于jquery)
Nov 18 #Javascript
JavaScript如何获取数组最大值和最小值
Nov 18 #Javascript
原生js模拟淘宝购物车项目实战
Nov 18 #Javascript
You might like
php地址引用(php地址引用的效率问题)
2012/03/23 PHP
PHP常用的文件操作函数经典收藏
2013/04/02 PHP
php提取字符串中网站url地址的方法
2014/12/03 PHP
Laravel 5.5 实现禁用用户注册示例
2019/10/24 PHP
JavaScript中数组的排序、乱序和搜索实现代码
2011/11/30 Javascript
JavaScript的模块化:封装(闭包),继承(原型) 介绍
2013/07/22 Javascript
Javascript玩转继承(一)
2014/05/08 Javascript
jquery判断浏览器后退时候弹出消息的方法
2014/08/11 Javascript
Angularjs的ng-repeat中去除重复数据的方法
2016/08/05 Javascript
js实现精确到毫秒的倒计时效果
2016/08/05 Javascript
微信小程序 Button 组件详解及简单实例
2017/01/10 Javascript
jQuery实现锚点向下平滑滚动特效示例
2017/08/29 jQuery
nodejs使用http模块发送get与post请求的方法示例
2018/01/08 NodeJs
JavaScript 隐性类型转换步骤浅析
2018/03/15 Javascript
浅谈node.js 命令行工具(cli)
2018/05/10 Javascript
详解javascript函数写法大全
2019/03/25 Javascript
微信小程序实现的canvas合成图片功能示例
2019/05/03 Javascript
vue页面引入three.js实现3d动画场景操作
2020/08/10 Javascript
[52:37]完美世界DOTA2联赛循环赛 Forest vs DM BO2第一场 10.29
2020/10/29 DOTA
Python多进程同步Lock、Semaphore、Event实例
2014/11/21 Python
在Python中操作文件之seek()方法的使用教程
2015/05/24 Python
在Python中移动目录结构的方法
2016/01/31 Python
Python中shutil模块的学习笔记教程
2017/04/04 Python
python批量设置多个Excel文件页眉页脚的脚本
2018/03/14 Python
numpy.delete删除一列或多列的方法
2018/04/03 Python
Python使用folium excel绘制point
2019/01/03 Python
Python 日志logging模块用法简单示例
2019/10/18 Python
伊芙丽官方旗舰店:中国淑女一线品牌
2017/12/01 全球购物
泰国王权免税店官方网站:KingPower
2019/03/11 全球购物
机电一体化求职信
2014/03/10 职场文书
解除劳动合同协议书范本
2014/04/14 职场文书
市场营销毕业求职信
2014/08/07 职场文书
颐和园导游词400字
2015/01/30 职场文书
原告代理词范文
2015/05/25 职场文书
期中考试后的感想
2015/08/07 职场文书
python 如何获取页面所有a标签下href的值
2021/05/06 Python