jQuery之折叠面板的深入解析


Posted in Javascript onJune 19, 2013

1:折叠面板可以将不同分类的内容分别放在不同的面板中,这些面板在页面中层叠摆放,用户可以通过单击各个面板的标题来展开该面板,查看面板的内容,
与此同时,将自动折叠隐藏其他面板
$(selector).accordion(options);
options可以选择的属性为:
disabled, active, animated, autoHeight, clearStyle, collapsible, event, fillSpace, header, icons, navigation, navigationFilter
简单实例:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
 <title>Accordion AutoHeight</title>
 <link rel="stylesheet" href="themes/base/jquery.ui.all.css">
 <script src="JS/jquery-1.4.2.min.js"></script>
 <script src="JS/jquery.ui.core.js"></script>
 <script src="JS/jquery.ui.widget.js"></script>
 <script src="JS/jquery.ui.accordion.js"></script>
 <script>
 $(function() {
  $( "#accordion" ).accordion({
   autoHeight: false
  });
 }); 
 </script>
    <style type="text/css">
 #accordion h3{ font-size:13px; font-weight:700; }
 #accordion>div{ font-size:12px; }
    </style>
</head>
<body>
<div id="accordion">
    <h3><a href="#">标题 1</a></h3>
    <div>
        这是一段较少的内容<br />
    </div>
    <h3><a href="#">标题 2</a></h3>
    <div>
        这是一段很长的内容<br />这是一段很长的内容<br />
        这是一段很长的内容<br />这是一段很长的内容<br />
        这是一段很长的内容<br />这是一段很长的内容<br />
        这是一段很长的内容<br />这是一段很长的内容<br />
    </div>
</div>
<div style="margin:8px 0; padding:10px; height:50px; border:solid 1px #aaa;">
这是另一个模块,将随着折叠面板的大小而改变位置
</div>
</body>
</html>

效果图:
jQuery之折叠面板的深入解析

2:自定义折叠面板图标

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
 <title>Accordion Icon</title>
 <link rel="stylesheet" href="themes/base/jquery.ui.all.css">
 <script type="text/javascript" src="JS/jquery-1.4.2.min.js"></script>
 <script type="text/javascript" src="JS/jquery.ui.core.js"></script>
 <script type="text/javascript" src="JS/jquery.ui.widget.js"></script>
 <script type="text/javascript" src="JS/jquery.ui.accordion.js"></script>
 <script>
 $(document).ready(function() {
  var triangle_icon = {
   header : "ui-icon-triangle-1-e",
   headerSelected : "ui-icon-triangle-1-s"
  };  var circle_arrow_icon = {
   header: "ui-icon-circle-arrow-e",
   headerSelected: "ui-icon-circle-arrow-s"
  };
  /* 初始化折叠面板 */
  $('#accordion').accordion();
  $( "#toggle" ).toggle(function() {
   $( "#accordion" ).accordion( "option", "icons", circle_arrow_icon );
  }, function() {
   $( "#accordion" ).accordion( "option", "icons", triangle_icon );
  });
 }); 
 </script>
    <style type="text/css">
 body{ padding:30px; }
 #accordion h3{ font-size:13px; font-weight:700; }
 #accordion>div{ font-size:12px; }
    </style>
</head>
<body>
<div style="width:220px; margin:10px 0;">
    <div id="accordion">
        <h3><a href="#">标题 1</a></h3>
        <div>
            这是一段内容<br />
        </div>
        <h3><a href="#">标题 2</a></h3>
        <div>
            这是一段内容<br />
        </div>
    </div>
</div>
<input id="toggle" value="切换图标" type="button"  />
</body>
</html>

程序效果图:
 jQuery之折叠面板的深入解析
3:能自定义排列顺序的折叠面板
折叠面板可以作为分类项目的主面板来使用,因为操作习惯,用户通常希望能够自定义面板的位置
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>AccordionSortable</title>
<link rel="stylesheet" type="text/css" href="themes/base/jquery.ui.all.css"/>
<script type="text/javascript" src="JS/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="JS/jquery.ui.core.js"></script>
<script type="text/javascript" src="JS/jquery.ui.widget.js"></script>
<script type="text/javascript" src="JS/jquery.ui.mouse.js"></script>
<script type="text/javascript" src="JS/jquery.ui.sortable.js"></script>
<script type="text/javascript" src="JS/jquery.ui.accordion.js"></script>
<script type="text/javascript">
$(document).ready(function(){
 $("#accordion")
  .accordion({
   header: "> div > h4"  //指定标题为该面板容器下的div标签中的h4元素
  })
  .sortable();  //可以将其封装为可排序的控件
});
</script>
<style>
body{ padding:30px; }
#accordion{ font-size:12px; }
#accordion>div>h3{ font-size:13px; font-weight:700; }
</style>
</head>
<body>
<div style="width:300px; ">
    <div id="accordion">
        <div>
            <h4><a href="#">标题 1</a></h4>
            <div>
                这是一段内容<br />
            </div>
        </div>
        <div>
            <h4><a href="#">标题 2</a></h4>
            <div>
                这是一段内容<br />
            </div>
        </div>
        <div>
            <h4><a href="#">标题 3</a></h4>
            <div>
                这是一段内容<br />
            </div>
        </div>
    </div>
</div>
</body>
</html>

jQuery之折叠面板的深入解析
4:折叠面板的方法
destroy, disable, enable, option, widget, activate, resize
$('#accordion').accordion("activate", 2);
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 <meta charset="GBK">
 <title>Accordion Resize</title>
 <link rel="stylesheet" href="themes/base/jquery.ui.all.css">
 <script src="JS/jquery-1.4.2.min.js"></script>
 <script src="JS/jquery.ui.core.js"></script>
 <script src="JS/jquery.ui.widget.js"></script>
 <script src="JS/jquery.ui.mouse.js"></script>
 <script src="JS/jquery.ui.resizable.js"></script>
 <script src="JS/jquery.ui.accordion.js"></script>
 <script>
 $(document).ready(function(){
  $( "#accordion" ).accordion({
   fillSpace : true  /* 设置为自动填充父元素空间 */
  });  /* 将容器设置为可改变大小的,
   最小高度为150,
   并且在改变大小的时候调用折叠面板的resize方法 */
  $( "#container" ).resizable({
   minHeight : 150,
   resize : function() {
    $( "#accordion" ).accordion( "resize" );
   }
  });
 });
 </script>
    <style type="text/css">
 #accordion h3{ font-size:13px; font-weight:700; }
 #accordion>div{ font-size:12px; }
 #container{ padding:10px; width:300px; height:180px; }
    </style>
</head>
<body>
<!-- 折叠面析的容器 -->
<div id="container" class="ui-widget-content">
    <!-- 折叠面析。其子元素中h3为面板标题,div为面板主体 -->
    <div id="accordion">
        <h3><a href="#">标题 1</a></h3>
        <div>
            这是第一段内容<br />
            <ul>
                <li>列表项 1</li><li>列表项 2</li><li>列表项 3</li>
            </ul>
        </div>
        <h3><a href="#">标题 2</a></h3>
        <div>
            这是第二段内容<br />这是第二段内容<br />
        </div>
        <h3><a href="#">标题 3</a></h3>
        <div>
            这是第三段内容<br />这是第三段内容<br />这是第三段内容<br />
        </div>
    </div>
    <!-- 这个span标记将显示一个拖动柄 -->
    <span class="ui-icon ui-icon-grip-dotted-horizontal" style="margin:2px auto;"></span>
</div>
<div style="margin:8px 0; padding:10px; width:300px; height:50px; border:solid 1px #aaa;">
这是另一个模块,将随着折叠面板容器的大小而改变位置
</div>
</body>
</html>

效果图:
  jQuery之折叠面板的深入解析

上述代码首先将折叠面板初始化为可自动填充父元素的组件,然后设置容器可以自动调整大小,并在容器控件大小改变时调用折叠面板的resize方法,
最后实现一起调整大小的效果
5:折叠面板的事件
change和changestart事件

  $("#accordion").accordion({
     change: function(event, ui) {
     },
     changestart: function(event, ui) {
     }
   })

*event: 触发的事件对象
*ui:视图对象
,有4个属性,即newHeader, 表示当前面板标题;oldHeader,表示前一个面板的标题,newContent:表示当前面板内容;oldContent, 表示前一个面板内容,
这些返回的都是jQuery对象
Javascript 相关文章推荐
js实现跟随鼠标移动且带关闭功能的图片广告实例
Feb 26 Javascript
JS基于VML技术实现的五角星礼花效果代码
Oct 26 Javascript
Bootstrap每天必学之js插件
Nov 30 Javascript
jquery及js实现动态加载js文件的方法
Jan 21 Javascript
JavaScript模拟鼠标右键菜单效果
Dec 08 Javascript
AngularJS Bootstrap详细介绍及实例代码
Jul 28 Javascript
jQuery搜索框效果实现代码(百度关键词联想)
Feb 25 Javascript
JS简单实现tab切换效果的多窗口显示功能
Sep 07 Javascript
微信小程序侧边栏滑动特效(左右滑动)
Jan 23 Javascript
javascript 删除数组元素和清空数组的简单方法
Feb 24 Javascript
Vuex 单状态库与多模块状态库详解
Dec 11 Javascript
JavaScript之实现一个简单的Vue示例
Jan 17 Javascript
jQuery之选择组件的深入解析
Jun 19 #Javascript
解析DHTML,JavaScript,DOM,BOM以及WEB标准的描述
Jun 19 #Javascript
JavaScript中把数字转换为字符串的程序代码
Jun 19 #Javascript
解析JavaScript中的标签语句
Jun 19 #Javascript
解析window.open的使用方法总结
Jun 19 #Javascript
解析js中获得父窗口链接getParent方法以及各种打开窗口的方法
Jun 19 #Javascript
Js,alert出现乱码问题的解决方法
Jun 19 #Javascript
You might like
PHP的简易冒泡法代码分享
2012/08/28 PHP
php 模拟GMAIL,HOTMAIL(MSN),YAHOO,163,126邮箱登录的详细介绍
2013/06/18 PHP
PHP之autoload运行机制实例分析
2014/08/28 PHP
重新认识php array_merge函数
2014/08/31 PHP
迪菲-赫尔曼密钥交换(Diffie?Hellman)算法原理和PHP实现版
2015/05/12 PHP
PHP给前端返回一个JSON对象的实例讲解
2018/05/31 PHP
PHP使用 Imagick 扩展实现图片合成,圆角处理功能示例
2019/09/09 PHP
javascript中数组的concat()方法使用介绍
2013/12/18 Javascript
Jquery 监视按键,按下回车键触发某方法的实现代码
2014/05/11 Javascript
jQuery实现可兼容IE6的滚动监听功能
2017/09/20 jQuery
通过nodejs 服务器读取HTML文件渲染到页面的方法
2018/05/17 NodeJs
Vuejs+vue-router打包+Nginx配置的实例
2018/09/20 Javascript
VUE.js实现动态设置输入框disabled属性
2019/10/28 Javascript
[03:48]显微镜下的DOTA2第四期——TP动作
2014/06/20 DOTA
简单谈谈Python的pycurl模块
2018/04/07 Python
python实现静态服务器
2019/09/05 Python
Flask框架请求钩子与request请求对象用法实例分析
2019/11/07 Python
python单向循环链表原理与实现方法示例
2019/12/03 Python
pytorch 实现打印模型的参数值
2019/12/30 Python
Django中FilePathField字段的用法
2020/05/21 Python
css实例教程 一款纯css3实现的超炫动画背画特效
2014/11/05 HTML / CSS
解决HTML5中滚动到底部的事件问题
2019/08/22 HTML / CSS
华为慧通笔试题
2016/04/22 面试题
什么是lambda函数
2013/09/17 面试题
土木工程求职信
2014/05/29 职场文书
医院保洁服务方案
2014/06/11 职场文书
安全口号大全
2014/06/21 职场文书
学生抄袭作业的检讨书
2014/10/02 职场文书
明星邀请函
2015/02/02 职场文书
党支部书记岗位职责
2015/02/15 职场文书
质检员岗位职责范本
2015/04/07 职场文书
电影雨中的树观后感
2015/06/15 职场文书
为什么你写的height:100%不起作用
2021/05/10 HTML / CSS
SpringBoot连接MySQL获取数据写后端接口的操作方法
2021/11/02 MySQL
详解Vue项目的打包方式(生成dist文件)
2022/01/18 Vue.js
Nginx性能优化之Gzip压缩设置详解(最大程度提高页面打开速度)
2022/02/12 Servers