jquery插件制作 手风琴Panel效果实现


Posted in Javascript onAugust 17, 2012

首先我们还是创建一个html文件,里面包含如下的html结构。

<div id="pane-container"> 
<div class="pane"> 


<h1>first pane</h1> 


<p>this script should allow only one pane to be visible at a time.</p> 

</div> 

<div class="pane"> 


<h1>second pane</h1> 


<p>this script should allow only one pane to be visible at a time.</p> 

</div> 

<div class="pane"> 


<h1>third pane</h1> 


<p>this script should allow only one pane to be visible at a time.</p> 

</div> 
</div>

然后为页面定义如下css:
<style type="text/css"> 
#pane-container 
{ 
margin: 0; 
padding: 0; 
width: 200px; 
} 
.pane h1 
{ 
padding: 5px; 
cursor: pointer; 
position: relative; 
background-color: #4c4c4c; 
color: #fff; 
font-weight: normal; 
font-size: 20px; 
margin: 0px; 
} 
.pane p 
{ 
padding: 10px; 
margin: 0; 
background-color: #e4e4e4; 
} 
</style>

下面我们来介绍jquery.accordtion.js插件的实现。首先我们需要考虑的是如何隐藏pane里面的内容部分,也就是p标签。h1作为标题是不需要隐藏的。
(function ($) { 
$.fn.accordtion = function () { 
return this.each(function () { 
$(this).find('p').hide(); 
}); 
} 
})(jQuery);

页面调用的代码:
$(document).ready(function () { 
$('#pane-container').accordtion(); 
});

插件代码很简单,就是找到class为pane的div下面的p,对其隐藏。接下来我们要实现的是,当用户点到h1的时候,对应的p标签的内容显示出来,同时其他h1对应的p标签的内容隐藏。代码如下:

//对h1标签设置click事件 
self.delegate('h1', 'click', function () { 
//为对应的p标签设置slideToggle效果 

$(this).next('p').slideToggle(600) 



//获取其他pane对象,找到他们下面的p标签,收起 



.parent().siblings().children('p').slideUp(600); 
});

现在我们的插件已经很有型了,最后要做的就是添加用户自定义属性options,这次我们只添加一个‘默认显示第几个pane'的属性。
//设置第几个元素显示 
self.children(':eq(' + options.visibleByDefault + ')')//找到和options.visibleByDefault一致的pane对象 
.children('p') 

.show();

完整的代码大家还是下demo自己看吧。jQuery.plugin.accordtion

谢谢大家的支持,希望本篇文章对你有帮助。如果对代码哪里有不清楚的地方,可以联系我。

Javascript 相关文章推荐
Javascript String对象扩展HTML编码和解码的方法
Jun 02 Javascript
使用ngView配合AngularJS应用实现动画效果的方法
Jun 19 Javascript
javascript+HTML5自定义元素播放焦点图动画
Feb 21 Javascript
js实现动态显示时间效果
Mar 06 Javascript
AngularJS之页面跳转Route实例代码
Mar 10 Javascript
Bootstrap datepicker日期选择器插件使用详解
Jul 26 Javascript
JavaScript栈和队列相关操作与实现方法详解
Dec 07 Javascript
node实现socket链接与GPRS进行通信的方法
May 20 Javascript
微信小程序开发实现消息推送
Nov 18 Javascript
实用Javascript调试技巧分享(小结)
Jun 18 Javascript
layui 数据表格 根据值(1=业务,2=机构)显示中文名称示例
Oct 26 Javascript
基于vue+echarts 数据可视化大屏展示的方法示例
Mar 09 Javascript
jquery插件制作 提示框插件实现代码
Aug 17 #Javascript
jquery插件制作 自增长输入框实现代码
Aug 17 #jQuery
jquery插件制作 表单验证实现代码
Aug 17 #Javascript
jquery插件制作 图片走廊 gallery
Aug 17 #Javascript
jquery插件制作教程 txtHover
Aug 17 #Javascript
IFrame跨域高度自适应实现代码
Aug 16 #Javascript
JSONP 跨域共享信息
Aug 16 #Javascript
You might like
《PHP边学边教》(02.Apache+PHP环境配置――下篇)
2006/12/13 PHP
如何用php获取程序执行的时间
2013/06/09 PHP
基于simple_html_dom的使用小结
2013/07/01 PHP
PHP SPL标准库之数据结构栈(SplStack)介绍
2015/05/12 PHP
PHP实现搜索地理位置及计算两点地理位置间距离的实例
2016/01/08 PHP
Laravel模糊查询区分大小写的实例
2019/09/29 PHP
laravel框架如何设置公共头和公共尾
2019/10/22 PHP
一文看懂PHP进程管理器php-fpm
2020/06/01 PHP
Javascript学习笔记1 数据类型
2010/01/11 Javascript
javascript获取flash版本号的方法
2014/11/20 Javascript
js实现点击图片自动提交action的简单方法
2016/10/16 Javascript
JavaScript自定义分页样式
2017/01/17 Javascript
js for循环倒序输出数组元素的实例
2017/03/01 Javascript
JQuery EasyUI 结合ztrIee的后台页面开发实例
2017/09/01 jQuery
手写简单的jQuery雪花飘落效果实例
2018/04/22 jQuery
在vue项目中使用md5加密的方法
2018/09/14 Javascript
微信小程序实现文字从右向左无限滚动
2020/11/18 Javascript
详解JS取出两个数组中的不同或相同元素
2019/03/20 Javascript
浅谈JS和jQuery的区别
2019/03/27 jQuery
JavaScript跳出循环的三种方法(break, return, continue)
2019/07/30 Javascript
easyUI 实现的后台分页与前台显示功能示例
2020/06/01 Javascript
[41:12]Liquid vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.24
2019/09/10 DOTA
[01:07:19]DOTA2-DPC中国联赛 正赛 CDEC vs XG BO3 第一场 1月19日
2021/03/11 DOTA
Python的垃圾回收机制深入分析
2014/07/16 Python
python3写的简单本地文件上传服务器实例
2018/06/04 Python
python交换两个变量的值方法
2019/01/12 Python
python模块常用用法实例详解
2019/10/17 Python
python的pyecharts绘制各种图表详细(附代码)
2019/11/11 Python
python实现图书馆抢座(自动预约)功能的示例代码
2020/09/29 Python
CSS3下的渐变文字效果实现示例
2018/03/02 HTML / CSS
我看到了用指针调用函数的不同语法形式
2014/07/16 面试题
求职简历中个人的自我评价
2013/12/01 职场文书
二年级语文上册复习计划
2015/01/19 职场文书
起诉状范本
2015/05/20 职场文书
重阳节简报
2015/07/20 职场文书
Redis集群的关闭与重启操作
2021/07/07 Redis