基于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 相关文章推荐
转自Jquery官方 jQuery1.1.3发布,速度提升800%,体积保持20K
Aug 19 Javascript
jQuery TextBox自动完成条
Jul 22 Javascript
javascript的解析执行顺序在各个浏览器中的不同
Mar 17 Javascript
chrome调试javascript详解
Oct 21 Javascript
使用JavaScript实现弹出层效果的简单实例
May 31 Javascript
Angular下H5上传图片的方法(可多张上传)
Jan 09 Javascript
bootstrap table 多选框分页保留示例代码
Mar 08 Javascript
zTree树形菜单交互选项卡效果的实现方法
Dec 25 Javascript
Angular2学习笔记之数据绑定的示例代码
Jan 03 Javascript
详解服务端预渲染之Nuxt(介绍篇)
Apr 07 Javascript
webpack+vue-cil 中proxyTable配置接口地址代理操作
Jul 18 Javascript
js实现鼠标点击飘爱心效果
Aug 19 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的一个完整SMTP类(解决邮件服务器需要验证时的问题)
2006/10/09 PHP
人大复印资料处理程序_输入篇
2006/10/09 PHP
CI框架在CLI下执行占用内存过大问题的解决方法
2014/06/17 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(六)
2014/06/23 PHP
php中的常用魔术方法汇总
2016/02/14 PHP
YII视图整合kindeditor扩展的方法
2016/07/13 PHP
php 调用百度sms来发送短信的实现示例
2018/11/02 PHP
ext form 表单提交数据的方法小结
2008/08/08 Javascript
jQuery Select(单选) 模拟插件 V1.3.62 改进版
2010/07/17 Javascript
JavaScript之appendChild、insertBefore和insertAfter使用说明
2010/12/30 Javascript
artDialog双击会关闭对话框的修改过程分享
2013/08/05 Javascript
Bootstrap网格系统详解
2016/04/26 Javascript
总结javascript中的六种迭代器
2016/08/16 Javascript
Vue filter介绍及详细使用
2018/04/04 Javascript
详解基于Vue2.0实现的移动端弹窗(Alert, Confirm, Toast)组件
2018/08/02 Javascript
Element UI框架中巧用树选择器的实现
2018/12/12 Javascript
说说如何在Vue.js中实现数字输入组件的方法
2019/01/08 Javascript
Openlayers测量距离与面积的实现方法
2020/09/25 Javascript
[06:13]DOTA2进化论(修改版)
2013/10/08 DOTA
[03:03]2014DOTA2西雅图国际邀请赛 Alliance战队巡礼
2014/07/07 DOTA
python寻找list中最大值、最小值并返回其所在位置的方法
2018/06/27 Python
Python实现购物评论文本情感分析操作【基于中文文本挖掘库snownlp】
2018/08/07 Python
Python 识别12306图片验证码物品的实现示例
2020/01/20 Python
Python web如何在IIS发布应用过程解析
2020/05/27 Python
利用Python实现最小二乘法与梯度下降算法
2021/02/21 Python
大都会艺术博物馆商店:The Met Store
2018/06/22 全球购物
French Connection官网:女装、男装及家居用品
2019/03/18 全球购物
js实现弹框效果
2021/03/24 Javascript
初中校园之声广播稿
2014/01/15 职场文书
中国文明网签名寄语
2014/01/18 职场文书
安全承诺书格式
2014/05/21 职场文书
图书馆志愿者活动总结
2014/06/27 职场文书
党员批评与自我批评思想汇报
2014/10/08 职场文书
新生开学寄语大全
2015/05/28 职场文书
CSS变量实现主题切换的方法
2021/06/23 HTML / CSS
手把手教你实现PyTorch的MNIST数据集
2021/06/28 Python