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 相关文章推荐
jQuery中 noConflict() 方法使用
Apr 25 Javascript
JavaScript获取网页中第一个图片id的方法
Apr 03 Javascript
jQuery的几个我们必须了解的特点
May 03 Javascript
理解javascript中DOM事件
Dec 25 Javascript
JavaScript获取服务器端时间的方法
Nov 29 Javascript
Vue.js系列之vue-router(上)(3)
Jan 03 Javascript
纯JS实现简单的日历
Jun 26 Javascript
Vue.js2.0中的变化小结
Oct 24 Javascript
JavaScript链式调用原理与实现方法详解
May 16 Javascript
JS异步宏队列与微队列原理区别详解
Jul 02 Javascript
Vue打包部署到Nginx时,css样式不生效的解决方式
Aug 03 Javascript
详解Vue的七种传值方式
Feb 08 Vue.js
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,ASP.JAVA,JAVA代码格式化工具整理
2010/06/15 PHP
php 目录与文件处理-郑阿奇(续)
2011/07/04 PHP
PHP防止注入攻击实例分析
2014/11/03 PHP
PHP ElasticSearch做搜索实例讲解
2020/02/05 PHP
Javascript客户端将指定区域导出到Word、Excel的代码
2008/10/22 Javascript
jquery序列化表单以及回调函数的使用示例
2014/07/02 Javascript
javascript中使用new与不使用实例化对象的区别
2015/06/22 Javascript
基于JavaScript实现智能右键菜单
2016/03/02 Javascript
Vue监听数据对象变化源码
2017/03/09 Javascript
JavaScript对象引用与赋值实例详解
2017/03/15 Javascript
js实现水平滚动菜单导航
2017/07/21 Javascript
js数组实现权重概率分配
2017/09/12 Javascript
详解webpack3编译兼容IE8的正确姿势
2017/12/21 Javascript
基于 Immutable.js 实现撤销重做功能的实例代码
2018/03/01 Javascript
jQuery简单实现的HTML页面文本框模糊匹配查询功能完整示例
2018/05/09 jQuery
浅谈JS中this在各个场景下的指向
2019/08/14 Javascript
基于Nuxt.js项目的服务端性能优化与错误检测(容错处理)
2019/10/23 Javascript
JS插入排序简单理解与实现方法分析
2019/11/25 Javascript
vue 实现图片懒加载功能
2020/12/31 Vue.js
Python 调用DLL操作抄表机
2009/01/12 Python
python基础教程之自定义函数介绍
2014/08/29 Python
python中闭包Closure函数作为返回值的方法示例
2017/12/17 Python
初探利用Python进行图文识别(OCR)
2019/02/26 Python
Ubuntu下Python+Flask分分钟搭建自己的服务器教程
2019/11/19 Python
使用PyTorch训练一个图像分类器实例
2020/01/08 Python
python代码实现将列表中重复元素之间的内容全部滤除
2020/05/22 Python
英国家庭、花园、汽车和移动解决方案:Easylife Group
2018/05/23 全球购物
加拿大在线旅游公司:Flighthub
2019/03/11 全球购物
英国儿童设计师服装的领先零售商:Base
2019/03/17 全球购物
Sandro法国官网:法国成衣品牌
2019/08/28 全球购物
企业负责人任命书
2014/06/05 职场文书
售后客服工作职责
2014/06/16 职场文书
安全生产月标语
2014/10/07 职场文书
夫妻房产协议书的格式
2014/10/11 职场文书
2016年国庆节67周年活动总结
2016/04/01 职场文书
年终奖金发放管理制度,中小企业适用,拿去救急吧!
2019/07/12 职场文书