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中animate()的使用方法及解决$(”body“).animate({“scrollTop”:top})不被Firefox支持的问题
Apr 04 jQuery
jQuery实现选中行变色效果(实例讲解)
Jul 06 jQuery
JQuery和html+css实现带小圆点和左右按钮的轮播图实例
Jul 22 jQuery
jQuery DOM节点的遍历方法小结
Aug 15 jQuery
jQuery实现简单的回到顶部totop功能示例
Oct 16 jQuery
jQuery实现打开网页自动弹出遮罩层或点击弹出遮罩层功能示例
Oct 19 jQuery
jquery在启动页面时,自动加载数据的实例
Jan 22 jQuery
jQuery插件实现弹性运动完整示例
Jul 07 jQuery
jQuery实现checkbox全选功能完整实例
Jul 12 jQuery
深入浅析angular和vue还有jquery的区别
Aug 13 jQuery
jQuery实现提交表单时不提交隐藏div中input的方法
Oct 08 jQuery
javascript(基于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
PHP新手上路(三)
2006/10/09 PHP
PHP中Fatal error session_start()错误解决步骤
2014/08/05 PHP
PHP中的魔术方法总结和使用实例
2015/05/11 PHP
帝国CMS留言板回复后发送EMAIL通知客户
2015/07/06 PHP
使用ThinkPHP的自动完成实现无限级分类实例详解
2016/09/02 PHP
php 使用 __call实现重载功能示例
2019/11/18 PHP
js自带函数备忘 数组
2006/12/29 Javascript
javascript数组使用调用方法汇总
2007/12/08 Javascript
jQuery实现表格颜色交替显示的方法
2015/03/09 Javascript
JavaScript正则表达式中的ignoreCase属性使用详解
2015/06/16 Javascript
jQuery Ajax传值到Servlet出现乱码问题的解决方法
2016/10/09 Javascript
AngularJS模板加载用法详解
2016/11/04 Javascript
js实现表单提交后不重新刷新当前页面
2016/11/30 Javascript
JavaScript调试之console.log调试的一个小技巧分享
2017/08/07 Javascript
vue.js2.0点击获取自己的属性和jquery方法
2018/02/23 jQuery
详解vue-cli3使用
2018/08/14 Javascript
详解webpack引用jquery(第三方模块)的三种办法
2019/08/21 jQuery
p5.js实现故宫橘猫赏秋图动画
2019/10/23 Javascript
[05:11]TI9战队采访——VIRTUSPRO
2019/08/22 DOTA
python操作日期和时间的方法
2014/03/11 Python
Python类的多重继承问题深入分析
2014/11/09 Python
python 利用pyttsx3文字转语音过程详解
2019/09/25 Python
Python Web静态服务器非堵塞模式实现方法示例
2019/11/21 Python
Python 将json序列化后的字符串转换成字典(推荐)
2020/01/06 Python
Amaze UI 文件选择域的示例代码
2020/08/26 HTML / CSS
中国医药集团国药在线:国药网
2017/02/06 全球购物
迷你唐卡软皮鞋:Minnetonka Moccasin
2018/05/01 全球购物
Chupi官网:在爱尔兰手工制作的订婚、结婚戒指和精美珠宝
2020/09/28 全球购物
小学教学随笔感言
2014/02/26 职场文书
给校长的建议书
2014/03/12 职场文书
知识就是力量演讲稿
2014/09/13 职场文书
500字小学生检讨书
2015/02/19 职场文书
幼儿园国培研修日志
2015/11/13 职场文书
Nginx下配置Https证书详细过程
2021/04/01 Servers
解决Navicat for MySQL 连接 MySQL 报2005错误的问题
2021/05/29 MySQL
Python Matplotlib绘制等高线图与渐变色扇形图
2022/04/14 Python