jQuery实现的手风琴侧边菜单效果


Posted in jQuery onMarch 29, 2017

本文实例讲述了jQuery实现的手风琴侧边菜单效果。分享给大家供大家参考,具体如下:

动手做了一个简单手风琴菜单,上图:

jQuery实现的手风琴侧边菜单效果

点击 B 可收缩 C 列表,点击 C 改变自身和父节点 B 的样式,悬浮时均有不同的样式改变。

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

<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(); 详见 API

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

jQuery 相关文章推荐
使用 jQuery 实现表单验证功能
Jul 05 jQuery
基于jQuery对象和DOM对象和字符串之间的转化实例
Aug 08 jQuery
浅谈ajax在jquery中的请求和servlet中的响应
Jan 22 jQuery
jQuery 改变P标签文本值方法
Feb 24 jQuery
jquery radio 动态控制选中失效问题的解决方法
Feb 28 jQuery
jQuery扩展方法实现Form表单与Json互相转换的实例代码
Sep 05 jQuery
jQuery+PHP实现上传裁剪图片
Jun 29 jQuery
jQuery选择器选中最后一个元素,倒数第二个元素操作示例
Dec 10 jQuery
JQueryDOM之样式操作
Mar 27 jQuery
jquery+css实现Tab栏切换的代码实例
May 14 jQuery
解决jquery validate 验证不通过后验证正确的信息仍残留在label上的方法
Aug 27 jQuery
如何使用jQuery操作Cookies方法解析
Sep 08 jQuery
jQuery实现字体颜色渐变效果的方法
Mar 29 #jQuery
jquery实现tab键进行选择后enter键触发click行为
Mar 29 #jQuery
jQuery插件之validation插件
Mar 29 #jQuery
jquery实现静态搜索功能(可输入搜索文字)
Mar 28 #jQuery
jQuery插件FusionCharts绘制的2D帕累托图效果示例【附demo源码】
Mar 28 #jQuery
BootStrap中jQuery插件Carousel实现轮播广告效果
Mar 27 #jQuery
jQuery中的deferred使用方法
Mar 27 #jQuery
You might like
PHP 文件上传源码分析(RFC1867)
2009/10/30 PHP
php smarty 二级分类代码和模版循环例子
2011/06/01 PHP
浅谈PHP进程管理
2019/03/08 PHP
ThinkPHP3.2.3框架邮件发送功能图文实例详解
2019/04/23 PHP
动态刷新 dorado树的js代码
2009/06/12 Javascript
JSQL SQLProxy 的 php 版本代码
2010/05/05 Javascript
jquery下实现overlay遮罩层代码
2010/08/25 Javascript
JQuery扩展插件Validate—6 radio、checkbox、select的验证
2011/09/05 Javascript
jQuery操作Select的Option上下移动及移除添加等等
2013/11/18 Javascript
jquery 构造函数在表单提交过程中修改数据
2015/05/25 Javascript
ECMAScript6中Set/WeakSet详解
2015/06/12 Javascript
JS模拟键盘打字效果的方法
2015/08/05 Javascript
easyui combotree加载静态数据问题(选不上)解决方法
2016/12/26 Javascript
Vue原理剖析 实现双向绑定MVVM
2017/05/03 Javascript
jquery ztree实现右键收藏功能
2017/11/20 jQuery
详解刷新页面vuex数据不消失和不跳转页面的解决
2018/01/30 Javascript
vue实现动态显示与隐藏底部导航的方法分析
2019/02/11 Javascript
design vue 表格开启列排序的操作
2020/10/28 Javascript
Vue 解决在element中使用$notify在提示信息中换行问题
2020/11/11 Javascript
[03:02]2014DOTA2西雅图邀请赛 让队员自己告诉你DK NAVI备战情况
2014/07/08 DOTA
[01:36]DOTA2完美大师赛趣味视频之与队友相处的十万个技巧
2017/11/19 DOTA
python实现SMTP邮件发送功能
2020/06/16 Python
Python用threading实现多线程详解
2017/02/03 Python
使用python 爬虫抓站的一些技巧总结
2018/01/10 Python
Python中property属性实例解析
2018/02/10 Python
python实现根据文件格式分类
2019/10/31 Python
完美解决keras 读取多个hdf5文件进行训练的问题
2020/07/01 Python
python tkinter的消息框模块(messagebox,simpledialog)
2020/11/07 Python
在线服装零售商:SheIn
2016/07/22 全球购物
美国最大的网络男装服装品牌:Bonobos
2017/05/25 全球购物
管理科学大学生求职信
2013/11/13 职场文书
学校安全责任书
2014/04/14 职场文书
汽修专业自荐信
2014/07/07 职场文书
民主生活会剖析材料
2014/09/30 职场文书
雷锋电影观后感
2015/06/10 职场文书
个人收入证明格式
2015/06/24 职场文书