基于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 相关文章推荐
js中将HTMLCollection/NodeList/伪数组转换成数组的代码
Jul 31 Javascript
JavaScript动态改变HTML页面元素例如添加或删除
Aug 10 Javascript
CSS javascript 结合实现悬浮固定菜单效果
Aug 23 Javascript
基于JavaScript如何实现私有成员的语法特征及私有成员的实现方式
Oct 28 Javascript
浅谈bootstrap源码分析之scrollspy(滚动侦听)
Jun 06 Javascript
JS实现的多张图片轮流播放幻灯片效果
Jul 22 Javascript
利用Angularjs和bootstrap实现购物车功能
Aug 31 Javascript
js实现界面向原生界面发消息并跳转功能
Nov 22 Javascript
使用vue制作FullPage页面滚动效果
Aug 21 Javascript
vue中keep-alive的用法及问题描述
May 15 Javascript
vue.js过滤器+ajax实现事件监听及后台php数据交互实例
May 22 Javascript
VUE前后端学习tab写法实例
Aug 06 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 之入门篇
2006/12/04 PHP
phpmyadmin MySQL 加密配置方法
2009/07/05 PHP
PHP 全角转半角实现代码
2010/05/16 PHP
PHP的autoload自动加载机制使用说明
2010/12/28 PHP
LotusPhp笔记之:Cookie组件的使用详解
2013/05/06 PHP
ThinkPHP中调用PHPExcel的实现代码
2017/04/08 PHP
PHP简单实现二维数组的矩阵转置操作示例
2017/11/24 PHP
JavaScript的类型转换(字符转数字 数字转字符)
2010/08/30 Javascript
浏览器打开层自动缓慢展开收缩实例代码
2013/07/04 Javascript
JQuery的自定义事件代码,触发,绑定简单实例
2013/08/01 Javascript
JavaScript中的函数模式详解
2015/02/11 Javascript
微信小程序 教程之wxapp视图容器 scroll-view
2016/10/19 Javascript
jQuery Validate设置onkeyup验证的实例代码
2016/12/09 Javascript
Angular.js实现注册系统的实例详解
2016/12/18 Javascript
jQuery实现链接的title快速出现的方法
2017/02/20 Javascript
Webpack打包css后z-index被重新计算的解决方法
2017/06/18 Javascript
详解用vue.js和laravel实现微信授权登陆
2017/06/23 Javascript
JavaScript中最常用的10种代码简写技巧总结
2017/06/28 Javascript
Angular 1.x个人使用的经验小结
2017/07/19 Javascript
webpack引入eslint配置详解
2018/01/22 Javascript
vue 实现剪裁图片并上传服务器功能
2018/03/01 Javascript
Vue iview-admin框架二级菜单改为三级菜单的方法
2018/07/03 Javascript
JavaScript实现的拼图算法分析
2019/02/13 Javascript
微信小程序之 catalog 切换实现解析
2019/09/12 Javascript
Python发送form-data请求及拼接form-data内容的方法
2016/03/05 Python
老生常谈python的私有公有属性(必看篇)
2017/06/09 Python
Python文件和流(实例讲解)
2017/09/12 Python
pyqt 多窗口之间的相互调用方法
2019/06/19 Python
python中有函数重载吗
2020/05/28 Python
如何解决python多种版本冲突问题
2020/10/13 Python
SK-II神仙水美国官网:SK-II美国
2020/02/25 全球购物
舞蹈教师自荐信
2014/01/27 职场文书
鉴定评语大全
2014/05/05 职场文书
python flask开发的简单基金查询工具
2021/06/02 Python
OpenStack虚拟机快照和增量备份实现方法
2022/04/04 Servers
Spring Data JPA框架持久化存储数据到数据库
2022/04/28 Java/Android