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插件FusionCharts绘制的3D环饼图效果示例【附demo源码】
Apr 02 jQuery
使用jQuery ajaxupload插件实现无刷新上传文件
Apr 23 jQuery
jQuery自定义元素右键点击事件(实现案例)
Apr 28 jQuery
jquery实现图片轮播器
May 23 jQuery
jQuery事件_动力节点Java学院整理
Jul 05 jQuery
JQuery EasyUI的一些常用组件
Jul 12 jQuery
jQuery实现用户信息表格的添加和删除功能
Sep 12 jQuery
jQuery第一次运行页面默认触发点击事件的实例
Jan 10 jQuery
jQuery动态操作表单示例【基于table表格】
Dec 06 jQuery
jQuery实现动态添加和删除input框实例代码
Mar 26 jQuery
jquery实现上传文件进度条
Mar 26 jQuery
jQuery实现简单评论区功能
Oct 26 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
千呼万唤始出来,DOTA2勇士令状不朽宝藏Ⅱ现已推出
2020/08/25 DOTA
PHP session有效期问题
2009/04/26 PHP
基于Snoopy的PHP近似完美获取网站编码的代码
2011/10/23 PHP
php实现memcache缓存示例讲解
2013/12/04 PHP
在SAE上搭建最新wordpress的方法
2014/12/21 PHP
php对文件夹进行相关操作(遍历、计算大小)
2015/11/04 PHP
php+jQuery实现的三级导航栏下拉菜单显示效果
2017/08/10 PHP
PHP多线程模拟实现秒杀抢单
2018/02/07 PHP
PHP crypt()函数的用法讲解
2019/02/15 PHP
extjs fckeditor集成代码
2009/05/10 Javascript
下拉列表选择项的选中在不同浏览器中的兼容性问题探讨
2013/09/18 Javascript
详谈jQuery中的this和$(this)
2014/11/13 Javascript
深入分析JSON编码格式提交表单数据
2015/06/25 Javascript
JavaScript Length 属性的总结
2015/11/02 Javascript
深入浅析JavaScript字符串操作方法 slice、substr、substring及其IE兼容性
2015/12/16 Javascript
Vue.js实现在下拉列表区域外点击即可关闭下拉列表的功能(自定义下拉列表)
2017/05/30 Javascript
Angular 数据请求的实现方法
2018/05/07 Javascript
JS实现的3des+base64加密解密算法完整示例
2018/05/18 Javascript
JS引用传递与值传递的区别与用法分析
2018/06/01 Javascript
vue中$set的使用(结合在实际应用中遇到的坑)
2018/07/10 Javascript
详解js访问对象的属性和方法
2018/10/25 Javascript
JavaScript 接口原理与用法实例详解
2020/05/12 Javascript
[00:36]DOTA2上海特级锦标赛 Alliance战队宣传片
2016/03/04 DOTA
python模拟登陆,用session维持回话的实例
2018/12/27 Python
python 多线程重启方法
2019/02/18 Python
python 对一幅灰度图像进行直方图均衡化
2020/10/27 Python
Expedia印度:您的一站式在线旅游网站
2017/08/24 全球购物
美国Max仓库:Max Warehouse
2020/05/31 全球购物
Yahoo的PHP面试题
2014/05/26 面试题
大学生个人推荐信范文
2013/11/25 职场文书
外贸专业求职信
2014/03/09 职场文书
2015年人事科工作总结
2015/04/28 职场文书
运动会广播稿100字
2015/08/19 职场文书
工作报告范文
2019/06/20 职场文书
golang日志包logger的用法详解
2021/05/05 Golang
解决SpringCloud Feign传对象参数调用失败的问题
2021/06/23 Java/Android