基于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的ajax使用场景(c#)
Dec 03 Javascript
JavaScript中发布/订阅模式的简单实例
Nov 05 Javascript
jQuery简单实现网页选项卡特效
Nov 24 Javascript
基于javascript实现判断移动终端浏览器版本信息
Dec 09 Javascript
使用pjax实现无刷新更改页面url
Feb 05 Javascript
JavaScript实现为input与textarea自定义hover,focus效果的方法
Aug 21 Javascript
Java Mybatis框架入门基础教程
Sep 21 Javascript
纯JS代码实现隔行变色鼠标移入高亮
Nov 23 Javascript
JS操作时间 - UNIX时间戳的简单介绍(必看篇)
Aug 16 Javascript
详解Vue单元测试Karma+Mocha学习笔记
Jan 31 Javascript
使用JSON格式提交数据到服务端的实例代码
Apr 01 Javascript
vue项目配置使用flow类型检查的步骤
Mar 18 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系列学习之日期函数使用介绍
2012/08/18 PHP
php中读写文件与读写数据库的效率比较分享
2013/10/19 PHP
php使用ffmpeg向视频中添加文字字幕的实现方法
2016/05/23 PHP
javascript与webservice的通信实现代码
2010/12/25 Javascript
js隐藏与显示回到顶部按钮及window.onscroll事件应用
2013/01/25 Javascript
登陆成功后自动计算秒数执行跳转
2014/01/23 Javascript
javascript 处理null及null值示例
2014/06/09 Javascript
html文档中的location对象属性理解及常见的用法
2014/08/13 Javascript
jQuery中prepend()方法使用详解
2015/08/11 Javascript
js小数运算出现多位小数如何解决
2015/10/08 Javascript
Web开发必知Javascript技巧大全
2016/02/23 Javascript
教你JS中的运算符乘方、开方及变量格式转换
2016/08/09 Javascript
Vue.js使用v-show和v-if的注意事项
2016/12/13 Javascript
基于JavaScript实现活动倒计时效果
2017/04/20 Javascript
详谈innerHTML innerText的使用和区别
2017/08/18 Javascript
微信小程序 扭蛋抽奖机css3动画实现详解
2019/07/19 Javascript
jQuery实现全选按钮
2021/01/01 jQuery
[05:53]完美世界携手游戏风云打造 卡尔工作室观战系统篇
2013/04/22 DOTA
[33:23]Secret vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python操作json数据的一个简单例子
2014/04/17 Python
python采集博客中上传的QQ截图文件
2014/07/18 Python
python通过exifread模块获得图片exif信息的方法
2015/03/16 Python
Python设计模式中单例模式的实现及在Tornado中的应用
2016/03/02 Python
教你用 Python 实现微信跳一跳(Mac+iOS版)
2018/01/04 Python
Python中shapefile转换geojson的示例
2019/01/03 Python
python中字典按键或键值排序的实现代码
2019/08/27 Python
决策树剪枝算法的python实现方法详解
2019/09/18 Python
Python3中的tuple函数知识点讲解
2021/01/03 Python
使用CSS3编写类似iOS中的复选框及带开关的按钮
2016/04/11 HTML / CSS
HTML5跳转小程序wx-open-launch-weapp的示例代码
2020/07/16 HTML / CSS
美国优质宠物用品购买网站:Muttropolis
2020/02/17 全球购物
学习《中小学教师职业道德规范》心得体会
2016/01/18 职场文书
Python基础之赋值,浅拷贝,深拷贝的区别
2021/04/30 Python
React 并发功能体验(前端的并发模式)
2021/07/01 Javascript
教你如何让spark sql写mysql的时候支持update操作
2022/02/15 MySQL
使用vuex-persistedstate本地存储vuex
2022/04/29 Vue.js