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绘制2D柱状图和折线图的组合图效果示例【附demo源码】
Apr 10 jQuery
jQuery设置图片等比例缩小的方法
Apr 29 jQuery
详解jquery插件jquery.viewport.js学习使用方法
Sep 08 jQuery
jQuery实现倒计时功能 jQuery实现计时器功能
Sep 19 jQuery
JavaScript自执行函数和jQuery扩展方法详解
Oct 27 jQuery
jQuery实现的手动拖动控制进度条效果示例【测试可用】
Apr 18 jQuery
详解使用jQuery.i18n.properties实现js国际化
May 04 jQuery
JQuery搜索框自动补全(模糊匹配)功能实现示例
Jan 08 jQuery
jQuery实现的鼠标拖动画矩形框示例【可兼容IE8】
May 17 jQuery
jQuery删除/清空指定元素的所有子节点实例代码
Jul 04 jQuery
html+jQuery实现拖动滑块图片拼图验证码插件【移动端适用】
Sep 10 jQuery
JavaScript或jQuery 获取option value值方法解析
May 12 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&amp;mysql(三)
2006/10/09 PHP
smarty的保留变量问题
2008/10/23 PHP
深入分析使用mysql_fetch_object()以对象的形式返回查询结果
2013/06/05 PHP
typecho插件编写教程(五):核心代码
2015/05/28 PHP
对于Laravel 5.5核心架构的深入理解
2018/02/22 PHP
javascript demo 基本技巧
2009/12/18 Javascript
javascript 模拟点击广告
2010/01/02 Javascript
nodejs实用示例 缩址还原
2010/12/28 NodeJs
jQuery.validate 常用方法及需要注意的问题
2013/03/20 Javascript
require.js深入了解 require.js特性介绍
2014/09/04 Javascript
Javascript 拖拽的一些简单的应用(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
JavaScript中toString()方法的使用详解
2015/06/05 Javascript
Bootstrap中CSS的使用方法
2016/02/17 Javascript
jQuery实现的鼠标经过时变宽的效果(附demo源码)
2016/04/28 Javascript
js实现当鼠标移到表格上时显示这一格全部内容的代码
2016/06/12 Javascript
Javascript中浏览器窗口的基本操作总结
2016/08/18 Javascript
headjs实现网站并行加载但顺序执行JS
2016/11/29 Javascript
JS对象的深度克隆方法示例
2017/03/16 Javascript
vue使用技巧及vue项目中遇到的问题
2018/06/04 Javascript
Vue在页面数据渲染完成之后的调用方法
2018/09/11 Javascript
vue vue-Router默认hash模式修改为history需要做的修改详解
2018/09/13 Javascript
jQuery事件绑定和解绑、事件冒泡与阻止事件冒泡及弹出应用示例
2019/05/13 jQuery
浅谈vue获得后台数据无法显示到table上面的坑
2020/08/13 Javascript
Python的Django框架中的Context使用
2015/07/15 Python
Python3 安装PyQt5及exe打包图文教程
2019/01/08 Python
详解Django配置优化方法
2019/11/18 Python
python给视频添加背景音乐并改变音量的具体方法
2020/07/19 Python
Mountain Hardwear官网:攀岩服装和户外装备
2019/09/26 全球购物
英国奢华护肤、美容和Spa品牌:Temple Spa
2019/11/02 全球购物
简单说说tomcat的配置
2013/05/28 面试题
夜班门卫岗位职责
2013/12/09 职场文书
美德好少年事迹材料
2014/01/19 职场文书
电话客服专员岗位职责
2014/06/28 职场文书
机关领导查摆四风思想汇报
2014/09/13 职场文书
2014年幼儿园园务工作总结
2014/12/05 职场文书
java设计模式--建造者模式详解
2021/07/21 Java/Android