《jQuery、jQuery UI及jQuery Mobile技巧与示例》——7.1 技巧:使用折叠菜单微件组织内容

简介: 代码清单7-1介绍了折叠菜单(accordin)微件,通过它,可以将内容分组在标题下面,并且每次只显示选定的一组内容。单击另一个标题会关闭当前打开的一组内容然后在选定的标题下展开新的分组。

本节书摘来自异步社区《jQuery、jQuery UI及jQuery Mobile技巧与示例》一书中的第7章,第7.1节,作者:【荷】Adriaan de Jonge , 【美】Phil Dutson著,更多章节内容可以访问云栖社区“异步社区”公众号查看

7.1 技巧:使用折叠菜单微件组织内容

代码清单7-1介绍了折叠菜单(accordin)微件,通过它,可以将内容分组在标题下面,并且每次只显示选定的一组内容。单击另一个标题会关闭当前打开的一组内容然后在选定的标题下展开新的分组。

代码清单7-1 把< h3>和< div>元素转换成折叠菜单

00 <!DOCTYPE html>
01
02 <html lang="en">
03 <head>
04  <title>jQuery UI Accordion</title>
05  <link type="text/css" rel="stylesheet" href=
06   "http://code.jquery.com/ui/1.8.16/themes/base/jquery-ui.css"> 
07  <style>
08   div#my-accordion {
09      font-size: 14px;
10   }
11  </style>
12 </head>
13 <body>
14
15 <div id="my-accordion">
16  <h3>
17    <a href="#first">Try to switch to the next part</a>
18  </h3>
19  <div>
20   The content
21  </div>
22  <h3>
23   <a href="#second">Next</a>
24  </h3>
25  <div>
26   More content
27  </div>
28  <h3>
29   <a href="#third">Last</a>
30  </h3>
31  <div>
32   and the last content
33  </div>
34 </div>
35
36 <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
37 <script src="http://code.jquery.com/ui/1.8.16/jquery-ui.min.js">
38 </script>
39
40 <script>
41 // 请将下列代码移至一个外部的.js文件中
42 $(document).ready(function() {
43
44  $('#my-accordion').accordion();
45  
46 });
47 </script>
48 </body>
49 </html>

第15~34行显示了一个有特定HTML结构的div。你应该发现其中的模式,也就是一个h3元素包含一个锚(anchor)元素,其后接div元素,如此重复。h3元素会用作分组的标题,而为了能对分组进行折叠,div元素需要是能隐藏的。

7.1.1 为折叠菜单元素添加样式
本章的简介中已经提到,折叠菜单会生成精心设计的HTML结构。更准确地说,它扩展了现有的HTML结构。在div上应用accordion方法后,HTML看上去如下面的代码段。(注意:下面的HTML是程序生成的,不需要手动录入。)

<div id="my-accordion"
 class="ui-accordion ui-widget ui-helper-reset ui-accordion-icons"
 role="tablist">
 <h3
   class="ui-accordion-header ui-helper-reset ui-state-active
     ui-corner-top"
   role="tab"
   aria-expanded="true"
   aria-selected="true"
   tabindex="0">
   <span class="ui-icon ui-icon-triangle-1-s"></span>
   <a href="#first">First</a>
 </h3>
 <div
   class="ui-accordion-content ui-helper-reset ui-widget-content
    ui-corner-bottom ui-accordion-content-active"
   style="display: block; height: 18px; padding-top: 14px;
     padding-bottom: 14px; overflow-x: auto; overflow-y: auto; "
   role="tabpanel">Content for first section</div>
 <h3
   class="ui-accordion-header ui-helper-reset ui-state-default
     ui-corner-all"
   role="tab"
   aria-expanded="false"
   aria-selected="false"
   tabindex="-1" >
 <span class="ui-icon ui-icon-triangle-1-e"></span>
   <a href="#second">Second</a>
 </h3>
 <div
   class="ui-accordion-content ui-helper-reset ui-widget-content
     ui-corner-bottom"
   style="overflow-x: auto; overflow-y: auto; display: none;
     height: 18px; padding-top: 14px; padding-bottom: 14px; "
   role="tabpanel">Content for second section</div>

粗体部分表示相对于原来的HTML所做的更改。高亮显示的代码部分是可变的,当用户点击一个不同的折叠菜单的头部时,它们会随之变化。

7.1.2 设置折叠菜单的选项
有许多不同的选项可以设置和用于折叠菜单微件。表7-1列出了设置选项的例子,后面是每个选项功能的描述。

screenshot
screenshot
screenshot
7.1.3 捕获折叠菜单的事件
下面是一个示例,用来演示可能从ui参数得到的值:

ui = {
newContent: // 元素
newHeader:  // 元素
oldContent: // 元素
oldHeader:  // 元素
options: Object
 active: 3
 animated: "slide"
 autoHeight: true
 change: function (event, ui) {
 clearStyle: false
 collapsible: false
 disabled: false
 duration: undefined
 event: "click"
 fillSpace: false
 header: "> li > :first-child,> :not(li):even"
 icons: Object
 navigation: true
 navigationFilter: function (index) {
 proxied: "slide"
 proxiedDuration: undefined
}

下面演示了当一个新的折叠菜单组件实例化后,处理该事件的位置:

$('#my-accordion').accordion({create: function(event, ui) {
   // 事件处理
}});
//或
$('#my-accordion')
 .on('accordioncreate', function(event, ui) {
  // 事件处理
 })
 .accordion();
下面演示了选择了折叠菜单中的一个新分组,并且在组件切换动画完成后处理切换事件的位置:

$('#my-accordion').accordion({change: function(event, ui) {
  // 事件处理
}});
//或
$('#my-accordion').accordion()
 .on('accordionchange', function(event, ui) {
  // 事件处理
 });

下面演示了选择了折叠菜单中的一个新组,并且在动画刚开始时处理该事件的位置:

$('#my-accordion').accordion({changestart: function(event, ui) {
   // 事件处理
}});
//或
$('#my-accordion').accordion()
 .on('accordionchangestart', function(event, ui) {
   // 事件处理
 });

7.1.4 调用折叠菜单的方法
折叠菜单微件还包括了一些用于改变值和行为的方法。表7-2列出了这些可用的方法。
screenshot

相关文章
|
JSON 前端开发 Java
Mock.js之Element-ui搭建首页导航与左侧菜单
Mock.js之Element-ui搭建首页导航与左侧菜单
99 0
|
JSON 前端开发 JavaScript
【Element-UI】Mockjs及案例首页导航、左侧菜单
Mock.js是一个用于生成模拟数据的JavaScript库。它能够模拟后端API接口,用于前端开发时进行接口调试和测试提高自动化测试效率。使用Mock.js可以快速创建虚拟的数据,并且可以设置数据的类型、格式和规则,从而模拟真实的数据响应。Mock.js支持生成随机数据拦截Ajax请求以返回模拟数据支持RESTful API风格等功能,能够提高前端开发效率,并且减少对后端接口的依赖。支持生成随机的文本、数字、布尔值、日期、邮箱、链接、图片、颜色等。
|
4月前
|
JavaScript
jQuery 树型菜单插件(Treeview)
jQuery 树型菜单插件(Treeview)
82 2
|
2月前
|
JavaScript 前端开发
jQuery和CSS3滑动展开菜单按钮插件
这是一款jQuery和CSS3滑动展开菜单按钮插件。该滑动展开菜单按钮在用户点击主菜单按钮之后,子菜单以滑动的方式依次展开
75 21
|
8月前
|
Web App开发 缓存 JavaScript
JQuery Kendo UI使用技巧总结
JQuery Kendo UI使用技巧总结
59 4
|
JSON 前端开发 JavaScript
Element UI搭建首页导航和左侧菜单以及Mock.js和(组件通信)总线的运用
Element UI搭建首页导航和左侧菜单以及Mock.js和(组件通信)总线的运用
123 0
|
9月前
|
JSON JavaScript 数据格式
jQuery 树型菜单完整代码
jQuery 树型菜单完整代码
|
9月前
|
JavaScript
jQuery实现二级菜单
jQuery实现二级菜单
|
9月前
|
JSON 前端开发 JavaScript
【Element-UI】Mock.js,案例首页导航、左侧菜单
【Element-UI】Mock.js,案例首页导航、左侧菜单
113 0
jquery-easyui和jquery-ui的slider冲突解决
jquery-easyui和jquery-ui的slider冲突解决

热门文章

最新文章

  • 1
    WEB CAD插件通过上下文对象MxPluginContext修改UI界面的方法
    15
  • 2
    FirstUI:Deepseek能帮我们做很多事情,而这款开源框架专为开发者设计的开源UI框架,让你的项目加速起飞
    20
  • 3
    【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
    27
  • 4
    Vue Amazing UI 组件库(Vue3+TypeScript+Vite 等最新技术栈开发)
    29
  • 5
    Magma:微软放大招!新型多模态AI能看懂视频+浏览网页+UI交互+控制机器人,数字世界到物理现实无缝衔接
    84
  • 6
    unity判断鼠标在不在UI上
    52
  • 7
    【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
    82
  • 8
    【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
    159
  • 9
    移动端UI名词 - AxureMost
    63
  • 10
    用自然语言控制电脑,字节跳动开源 UI-TARS 的桌面版应用!内附详细的安装和配置教程
    619