酷站(www.ku0.com)-致力于为互联网从业者提供动力!

热门关键词:  企业  as  baidu  c4rp3nt3r  美女
酷站
【阿里云】采购季上云仅¥223/3年

jQuery创建折叠式菜单

来源:互联网搜集 作者:秩名 人气: 发布时间:2019-06-15
本篇文章主要介绍了jQuery创建折叠式菜单,对大家的学习或者工作具有一定的参考学习价值,感兴趣的小伙伴们可以参考一下,也感谢大家对酷站(ku0.com)的支持。

本篇文章介绍jQuery创建折叠式菜单

实现效果如下:



 

一、HTML代码结构

要实现折叠式菜单,代码相当简单,如下所示:
 

<ul class="accordion">
 <li class="selected">
  <span>北京景点</span>
  <div>
  <ul>
   <li>故宫</li>
   <li>十三陵</li>
   <li>圆明园</li>
   <li>长城</li>
  </ul>
  </div>
 </li>
 <li>
  <span>上海景点</span>
  <div>
  <ul>
   <li>东方明珠</li>
   <li>外滩</li>
   <li>豫园</li>
   <li>龙华寺</li>
  </ul>
  </div>
 </li>
 <li>
  <span>广州景点</span>
  <div>
  <ul>
   <li>白云山</li>
   <li>中山纪念堂</li>
   <li>华南植物园</li>
   <li>越秀公园</li>
  </ul>
  </div>
 </li>
 <li>
  <span>深圳景点</span>
  <div>
  <ul>
   <li>世界之窗</li>
   <li>东门老街</li>
   <li>海上田园旅游区</li>
   <li>中信明思克航母</li>
  </ul>
  </div>
 </li>
 <li>
  <span>厦门景点</span>
  <div>
  <ul>
   <li>鼓浪屿</li>
   <li>集美嘉庚园</li>
   <li>万石植物园</li>
   <li>方特梦幻王国</li>
  </ul>
  </div>
 </li>
</ul>

整个折叠式菜单是一个无序列表,每个菜单项是一个li。在li中,有一个span用于标题,一个div中包含了另外一个无序列表,用于子菜单。

二、jQuery代码分析


jQuery的代码也很简单,只有短短的几行:
 

$(function () {
  $("ul.accordion li span").on('click', function () {
  $(this).parent().siblings().removeClass('selected').find('div').hide();
  $(this).parent().addClass('selected');
  $(this).next().slideDown(500);
  });
 });

我们来分析一下。

首先,通过jQuery的选择器"ul.accordion li span"指定在菜单项的标题上点击,可以折叠菜单。

click事件处理函数的第一行代码做了两件事,一个是将其它菜单项的selected样式移除,另一个是将其它菜单项的div(包括其中的子菜单)隐藏起来。

$(this).parent即span的上一级,即li。.siblings()查找它的兄弟元素,并使用链式调用首先移除其selected样式,再查找其中的div并隐藏。


第二行代码为当前点击菜单添加selected样式。

第三行代码展开当前菜单的子菜单。$(this).next()即span的下一个元素,即div(其中包含子菜单)。.slideDown(500)将子菜单向下缓缓展开,使用了CSS的动画效果,500指定动画时间为500毫秒。

三、CSS代码分析

这个折叠菜单的HTML代码和jQuery代码本身都相当简单,但CSS代码相对较长:
 

<style>
 body {
  font-family: Verdana, Arial, Helvetica, sans-serif;
 }
  
 .accordion,
 .accordion ul { /* 折叠菜单及其子菜单的通用样式 */
  font-size: 14px;
  font-weight: bold;
  width: 300px;
  margin: 0;
  padding: 0;
  list-style: none;
  text-align: center;
  border: 5px solid #343b42;
 }
  
 .accordion ul {
  border: 0;
 }
  
 .accordion ul li { /* 子菜单的菜单项样式 */
  line-height: 50px;
  height: 50px;
  color: #e6efee;
  border-bottom: 1px solid #383b4c;
  background-color: #282b3a;
 }
  
 .accordion li span { /* 折叠菜单的标题样式 */
  line-height: 60px;
  display: block;
  height: 60px;
  color: #e6efee;
  border: 2px solid #343b42;
  background-color: #3789d3;
 }
  
 .accordion li.selected span { /* 折叠菜单选中项的标题样式 */
  color: #e6efee;
  background-color: #393c4b;
 }
  
 .accordion li div { /* 子菜单平时不显示 */
  display: none;
 }
  
 .accordion li.selected div { /* 添加了selected样式时才显示 */
  display: block;
 }
</style>


版权声明:本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 959677720#qq.cn(#换@) 举报,一经查实,本站将立刻删除。
原文链接:https://blog.csdn.net/hanhf/article/details/81091594

相关文章

  • jquery实现两个div中的元素相互拖动的方法介绍

    jquery实现两个div中的元素相互拖动的方法介绍

    这里写了两个实例,两个都是基于jquery实现的。如果有更好的方法,欢迎分享。 第一个效果图: 拖动中: 拖动完成后: 代码实现: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 3......
    04-05
  • jquery添加div实现消息聊天框代码

    jquery添加div实现消息聊天框代码

    代码如下: htmlheadstyle* { margin: 0; padding: 0;} .border { margin-left: 300px; width: 900px; background-color: white; position: relative; border: 1px solid rgb(221, 221, 221);} .border .border-next { background-color:......
    02-08
  • jQuery实现验证用户登录

    jQuery实现验证用户登录

    内容 显示效果 输入之前 输入之后点击校验 废话少说,先上代码: HTML代码: !DOCTYPE htmlhtml xmlns=http://www.w3.org/1999/xhtmlhead meta http-equiv=Content-Type content=text/html; charset=utf-8 / titlejQuery实战1-用户名校验......
    12-11
  • html+jQuery实现拖动滑块图片拼图验证码插件(移动端适用)

    html+jQuery实现拖动滑块图片拼图验证码插件(移动端适用)

    电脑和手机移动端都适用的jQuery拖动滑块图片拼图验证码插件,通过鼠标拖动或触屏滑动填充拼图来进行安全验证,点击刷新可以更换当前待验证的图片。 HTML css: !DOCTYPE htmlhtml lang=zhheadmeta charset=UTF-8meta http-equiv=X-UA-Co......
    09-10
  • Jquery实现获取子元素的方法

    Jquery实现获取子元素的方法

    Jquery获取子元素的方法有2种,分别是children()方法和find()方法。下面我们分别来使用这两种方法,看看它们有何差异。 1.children()方法:获取该元素下的直接子集元素 2.find()方法:获取该元素下的所有子集元素 分别以以下HTML代码为例......
    08-24
  • jQuery实现的记住帐号密码功能方法

    jQuery实现的记住帐号密码功能方法

    本篇文章介绍jQuery实现的记住帐号密码功能方法 记住密码是每个有帐号登录的网站必备的,现在说一下通过COOKIE实现的记住密码功能。 !DOCTYPE htmlhtmlhead meta charset=utf-8 titleCOOKIE/title/headbodyscript type=text/javascript s......
    08-04
  • JavaScript实现的弹出遮罩层特效经典示例【基于jQuery】

    JavaScript实现的弹出遮罩层特效经典示例【基于jQuery】

    本篇文章介绍JavaScript实现的弹出遮罩层特效经典示例【基于jQuery】 效果图: 代码: !DOCTYPE htmlhtml lang=enhead meta charset=UTF-8 title查看,修改,删除/title script src=http://libs.baidu.com/jquery/2.0.0/jquery.min.js/sc......
    07-10
  • Laravel admin实现消息提醒、播放音频功能

    Laravel admin实现消息提醒、播放音频功能

    本篇文章介绍Laravel admin实现消息提醒、播放音频功能 1.找到laravel-admin 中的 index.blade.php 文件进行编辑 {{-- 音频通知 --}}audio style=display:none; height: 0 id=bg-music preload=auto src=http://fjdx.sc.chinaz.com/Files......
    07-10
  • jQuery属性选择器用法实例

    jQuery属性选择器用法实例

    本篇文章介绍jQuery属性选择器用法实例 属性选择器 在HTML文档中,元素的开始标记中通常包含有多个属性(attribute) input id=txtUsername type=text value=qiyisoft name=email style=display:block / 在jQuery中,除了直接使用id和class......
    06-28
  • 使用CSS3和JQuery easing 插件制作绚丽菜单

    使用CSS3和JQuery easing 插件制作绚丽菜单

    本篇文章介绍使用CSS3和JQuery easing 插件制作绚丽菜单 在本教程中,我们将创建一个独特的滑动框导航。这样做可以让有菜单的盒子滑出,并且弹出缩略图。 在某些菜单项中我们还包含着有进一步链接的子菜单。取决于我们鼠标在菜单项上的停......
    06-18

最新更新