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用noConflict代替$的实现方法
Apr 12 jQuery
详谈jQuery中使用attr(), prop(), val()获取value的异同
Apr 25 jQuery
js和jquery中获取非行间样式
May 05 jQuery
JQueryMiniUI按照时间进行查询的实现方法
Jun 07 jQuery
CSS3结合jQuery实现动画效果及回调函数的实例
Dec 27 jQuery
jQuery实现手机号正则验证输入及自动填充空格功能
Jan 02 jQuery
jQuery序列化form表单数据为JSON对象的实现方法
Sep 20 jQuery
jQuery分组选择器简单用法示例
Apr 04 jQuery
jQuery实现可编辑的表格
Dec 11 jQuery
jquery实现手风琴案例
May 04 jQuery
jQuery 淡入/淡出效果函数用法分析
May 19 jQuery
jquery插件懒加载的示例
Oct 24 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和ACCESS写聊天室(八)
2006/10/09 PHP
php中explode与split的区别介绍
2012/10/03 PHP
奉献出一个封装的curl函数 便于调用(抓数据专用)
2013/07/22 PHP
php用正则表达式匹配中文实例详解
2013/11/06 PHP
php对数组内元素进行随机调换的方法
2015/05/12 PHP
javascript各种复制代码收集
2008/09/20 Javascript
ExtJS 2.0实用简明教程 之Border区域布局
2009/04/29 Javascript
基于jQuery的图片大小自动适应实现代码
2010/11/17 Javascript
为你的网站增加亮点的9款jQuery插件推荐
2011/05/03 Javascript
Javascript面向对象编程
2012/03/18 Javascript
AngularJS的内置过滤器详解
2015/05/14 Javascript
javascript实现删除前弹出确认框
2015/06/04 Javascript
JavaScript代码里的判断小结
2016/08/22 Javascript
微信小程序 Button 组件详解及简单实例
2017/01/10 Javascript
vue如何集成raphael.js中国地图的方法示例
2017/08/15 Javascript
Vue-Router2.X多种路由实现方式总结
2018/02/09 Javascript
vue打包之后生成一个配置文件修改接口的方法
2018/12/09 Javascript
使用javascript做时间倒数读秒功能的实例
2019/01/23 Javascript
js form表单input框限制20个字符,10个汉字代码实例
2019/04/12 Javascript
JS实现的简单tab切换功能完整示例
2019/06/20 Javascript
python的dataframe转换为多维矩阵的方法
2018/04/11 Python
Opencv-Python图像透视变换cv2.warpPerspective的示例
2019/04/11 Python
python pandas生成时间列表
2019/06/29 Python
10分钟教你用python动画演示深度优先算法搜寻逃出迷宫的路径
2019/08/12 Python
解决django的template中如果无法引用MEDIA_URL问题
2020/04/07 Python
matplotlib 多个图像共用一个colorbar的实现示例
2020/09/10 Python
python 实现百度网盘非会员上传超过500个文件的方法
2021/01/07 Python
HTML5 本地存储 LocalStorage详解
2016/06/24 HTML / CSS
美国南加州的原创极限运动潮牌:Vans(范斯)
2016/08/05 全球购物
加拿大建筑和装修专家:Reno-Depot
2017/12/21 全球购物
工程业务员工作职责
2013/12/07 职场文书
大学本科生的个人自我评价
2013/12/09 职场文书
餐饮总经理岗位职责
2014/03/07 职场文书
法律进学校实施方案
2014/03/15 职场文书
给小学生的新年寄语
2014/04/04 职场文书
《数星星的孩子》教学反思
2014/04/11 职场文书