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 相关文章推荐
不间断滚动JS打包类,基本可以实现所有的滚动效果,太强了
Dec 08 Javascript
JavaScript URL参数读取改进版
Jan 16 Javascript
通过JS 获取Mouse Position(鼠标坐标)的代码
Sep 21 Javascript
jquery 关键字“拖曳搜索”之“拖曳”以及 图片“提示自适应放大”效果 的实现
Apr 18 Javascript
jquery小火箭返回顶部代码分享
Aug 19 Javascript
AngularJS 面试题集锦
Sep 06 Javascript
浅谈vue方法内的方法使用this的问题
Sep 15 Javascript
模块化react-router配置方法详解
Jun 03 Javascript
vue element table中自定义一些input的验证操作
Jul 18 Javascript
原生JS实现记忆翻牌游戏
Jul 31 Javascript
详解Vue中Axios封装API接口的思路及方法
Oct 10 Javascript
react 路由Link配置详解
Nov 11 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 socket方式提交的post详解
2008/07/19 PHP
解析yahoo邮件用phpmailer发送的实例
2013/06/24 PHP
PHP利用APC模块实现文件上传进度条的方法
2015/01/26 PHP
一键生成各种尺寸Icon的php脚本(实例)
2017/02/08 PHP
yii2利用自带UploadedFile实现上传图片的示例
2017/02/16 PHP
php文件包含目录配置open_basedir的使用与性能详解
2017/04/03 PHP
PHP编程获取各个时间段具体时间的方法
2017/05/26 PHP
PHP大文件分割上传 PHP分片上传
2017/08/28 PHP
详解使用php-cs-fixer格式化代码
2020/09/16 PHP
js控制div及网页相关属性的代码
2009/12/19 Javascript
深入理解JavaScript系列(15) 函数(Functions)
2012/04/12 Javascript
jquery.pagination.js 无刷新分页实现步骤分享
2012/05/23 Javascript
详解JavaScript数组和字符串中去除重复值的方法
2016/03/07 Javascript
jQuery动态添加
2016/04/07 Javascript
vue.js+boostrap项目实践(案例详解)
2016/09/21 Javascript
Angular实现跨域(搜索框的下拉列表)
2017/02/16 Javascript
js图片加载效果实例代码(延迟加载+瀑布流加载)
2017/05/12 Javascript
详解React服务端渲染从入门到精通
2019/03/28 Javascript
electron-vue开发环境内存泄漏问题汇总
2019/10/10 Javascript
[01:08:09]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#1Liquid VS Alliance第二局
2016/03/02 DOTA
[47:52]DOTA2-DPC中国联赛正赛 iG vs LBZS BO3 第二场 3月4日
2021/03/11 DOTA
wxpython 学习笔记 第一天
2009/02/09 Python
详解Python中最难理解的点-装饰器
2017/04/03 Python
Flask数据库迁移简单介绍
2017/10/24 Python
Python排序搜索基本算法之插入排序实例分析
2017/12/11 Python
OpenCV HSV颜色识别及HSV基本颜色分量范围
2019/03/22 Python
Pandas分组与排序的实现
2019/07/23 Python
python torch.utils.data.DataLoader使用方法
2020/04/02 Python
Python如何使用PIL Image制作GIF图片
2020/05/16 Python
Numpy中np.max的用法及np.maximum区别
2020/11/27 Python
paramiko使用tail实时获取服务器的日志输出详解
2020/12/06 Python
幼儿园家长会欢迎词
2014/01/09 职场文书
创建无烟单位实施方案
2014/03/29 职场文书
关于安全的标语
2014/06/10 职场文书
宿舍卫生管理制度
2015/08/05 职场文书
SQL实现LeetCode(176.第二高薪水)
2021/08/04 MySQL