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在IE或Firefox下获取鼠标位置的代码
Dec 18 Javascript
由Javascript实现的页面日历
Nov 04 Javascript
Jquery事件的连接使用示例
Jun 18 Javascript
以JSON形式将JS中Array对象数组传至后台的方法
Jan 06 Javascript
node.js中的fs.writeFile方法使用说明
Dec 14 Javascript
javascript操作select元素实例分析
Mar 27 Javascript
jQuery中的deferred对象和extend方法详解
May 08 jQuery
jquery+css实现侧边导航栏效果
Jun 12 jQuery
为jquery的ajax请求添加超时timeout时间的操作方法
Sep 04 jQuery
让webpack+vue-cil项目不再自动打开浏览器的方法
Sep 27 Javascript
vue-quill-editor+plupload富文本编辑器实例详解
Oct 19 Javascript
JavaScript中时间格式化新思路toLocaleString()
Nov 07 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
实时抓取YAHOO股票报价的代码
2006/10/09 PHP
利用PHP实现短域名互转
2013/07/05 PHP
PHP使用Memcache时模拟命名空间及缓存失效问题的解决
2016/02/27 PHP
php实现base64图片上传方式实例代码
2017/02/22 PHP
php获取数据库结果集方法(推荐)
2017/06/01 PHP
PHP基于进程控制函数实现多线程
2020/12/09 PHP
Tinymce+jQuery.Validation使用产生的BUG
2010/03/29 Javascript
Ajax搜索结果页面下方的分页按钮的生成
2012/04/05 Javascript
ajax页面无刷新 IE下遭遇Ajax缓存导致数据不更新的问题
2012/12/11 Javascript
PHP和NodeJs开发的应用如何共用Session
2015/04/16 NodeJs
BootStrap 智能表单实战系列(五) 表单依赖插件处理
2016/06/13 Javascript
使用jQuery的ajax方法向服务器发出get和post请求的方法
2017/01/13 Javascript
JavaScript实现动态增删表格的方法
2017/03/09 Javascript
bootstrap如何让dropdown menu按钮式下拉框长度一致
2017/04/10 Javascript
jQuery实现上传图片前预览效果功能
2017/08/03 jQuery
jQuery实现的淡入淡出与滑入滑出效果示例
2018/04/18 jQuery
微信小程序实现侧边分类栏
2019/10/21 Javascript
python批量生成本地ip地址的方法
2015/03/23 Python
python3 cvs将数据读取为字典的方法
2018/12/22 Python
Python基本socket通信控制操作示例
2019/01/30 Python
Python的numpy库下的几个小函数的用法(小结)
2019/07/12 Python
Python中最好用的命令行参数解析工具(argparse)
2019/08/23 Python
基于HTML5的WebGL经典3D虚拟机房漫游动画
2017/11/15 HTML / CSS
Puritan’s Pride(普丽普莱)官方网站:美国最大最全的保健品公司之一
2016/10/23 全球购物
纽约香氛品牌:NEST Fragrance
2018/10/15 全球购物
德国旅行、体验和活动的预订平台:Watado
2019/12/04 全球购物
仓库门卫岗位职责
2013/12/22 职场文书
敬老文明号事迹材料
2014/01/16 职场文书
消防器材管理制度
2014/01/28 职场文书
创先争优活动方案
2014/02/12 职场文书
微笑面对生活演讲稿
2014/05/13 职场文书
八月迷情观后感
2015/06/11 职场文书
党员干部学习三严三实心得体会
2016/01/05 职场文书
2019年国庆祝福语(70句)
2019/09/19 职场文书
导游词之四川武侯祠
2019/10/21 职场文书
Python作用域和名称空间的详细介绍
2022/04/13 Python