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实现文字打印动态效果
Apr 21 jQuery
jQuery插件ImgAreaSelect实现头像上传预览和裁剪功能实例讲解一
May 26 jQuery
基于jQuery的表单填充实例
Aug 22 jQuery
jquery之基本选择器practice(实例讲解)
Sep 30 jQuery
jQuery实现上下滚动公告栏详细代码
Nov 21 jQuery
jQuery简单实现根据日期计算星期几的方法
Jan 09 jQuery
jQuery实现当拉动滚动条到底部加载数据的方法分析
Jan 24 jQuery
JQueryDOM之样式操作
Mar 27 jQuery
jQuery事件blur()方法的使用实例讲解
Mar 30 jQuery
jquery-ui 进度条功能示例【测试可用】
Jul 25 jQuery
JQuery获得内容和属性方法解析
May 30 jQuery
jQuery实现简单全选框
Sep 13 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
对Session和Cookie的区分与解释
2007/03/16 PHP
PHP Token(令牌)设计
2008/03/15 PHP
PHP截取汉字乱码问题解决方法mb_substr函数的应用
2008/03/30 PHP
使用PHPMYADMIN操作mysql数据库添加新用户和数据库的方法
2010/04/02 PHP
php中计算程序运行时间的类代码
2012/11/03 PHP
解析php下载远程图片函数 可伪造来路
2013/06/25 PHP
YII路径的用法总结
2014/07/09 PHP
javascript Demo模态窗口
2009/12/06 Javascript
javascript检测浏览器flash版本的实现代码
2011/12/06 Javascript
使用jQuery validate 验证注册表单实例演示
2013/03/25 Javascript
纯javascript实现分页(两种方法)
2015/08/26 Javascript
JS非Alert实现网页右下角“未读信息”效果弹窗
2015/09/26 Javascript
浅析JavaScript 调试方法和技巧
2015/10/22 Javascript
JavaScript类的写法
2016/09/17 Javascript
在点击div中的p时,如何阻止事件冒泡
2017/02/07 Javascript
js代码延迟一定时间后执行一个函数的实例
2017/02/15 Javascript
js插件实现图片滑动验证码
2020/09/29 Javascript
开发一个Parcel-vue脚手架工具(详细步骤)
2018/09/22 Javascript
JS检索下拉列表框中被选项目的索引号(selectedIndex)
2019/12/17 Javascript
js验证账户名是否重复
2020/05/26 Javascript
[01:28:24]NAVI vs VG Supermajor 败者组 BO3 第三场 6.5
2018/06/06 DOTA
使用rpclib进行Python网络编程时的注释问题
2015/05/06 Python
RC4文件加密的python实现方法
2015/06/30 Python
深入浅出分析Python装饰器用法
2017/07/28 Python
Python编程实现蚁群算法详解
2017/11/13 Python
Python 类的特殊成员解析
2018/06/20 Python
PyQt5 在label显示的图片中绘制矩形的方法
2019/06/17 Python
python制作简单五子棋游戏
2019/06/18 Python
pyecharts动态轨迹图的实现示例
2020/04/17 Python
python中remove函数的踩坑记录
2021/01/04 Python
使用CSS3制作响应式导航菜单的方法
2015/07/12 HTML / CSS
采用专利算法搜索最廉价的机票:CheapAir
2016/09/10 全球购物
综合素质的自我鉴定
2013/10/07 职场文书
师德个人剖析材料
2014/02/02 职场文书
开展党的群众路线教育实践活动方案
2014/02/05 职场文书
2016七夕情人节广告语
2016/01/28 职场文书