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插件开发中的extend方法
Nov 19 Javascript
jquery form 加载数据示例
Apr 21 Javascript
javascript实现的一个带下拉框功能的文本框
May 08 Javascript
JavaScript基于setTimeout实现计数的方法
May 08 Javascript
多种JQuery循环滚动文字图片效果代码
Jun 23 Javascript
JS实现加载和读取XML文件的方法详解
Apr 24 Javascript
JS实现发送短信验证后按钮倒计时功能(防止刷新倒计时失效)
Jul 07 Javascript
JavaScript常用截取字符串的三种方式用法区别实例解析
May 15 Javascript
详解vue通过NGINX部署在子目录或者二级目录实践
Sep 03 Javascript
js实现随机8位验证码
Jul 24 Javascript
监控微信小程序中的慢HTTP请求过程详解
Jul 05 Javascript
vue浏览器返回监听的具体步骤
Feb 03 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
40个迹象表明你还是PHP菜鸟
2008/09/29 PHP
php数组函数序列之end() - 移动数组内部指针到最后一个元素,并返回该元素的值
2011/10/31 PHP
PHP程序员必须清楚的问题汇总
2014/12/18 PHP
php实现Linux服务器木马排查及加固功能
2014/12/29 PHP
WordPress中编写自定义存储字段的相关PHP函数解析
2015/12/25 PHP
PHP大神的十大优良习惯
2016/09/14 PHP
php简单实现文件或图片强制下载的方法
2016/12/06 PHP
javascript 内存回收机制理解
2011/01/17 Javascript
js截取字符串的两种方法及区别详解
2013/11/05 Javascript
判断一个对象是否为jquery对象的方法
2014/03/12 Javascript
javascript实现的一个带下拉框功能的文本框
2014/05/08 Javascript
JavaScript设计模式之工厂模式和构造器模式
2015/02/11 Javascript
js实现同一页面可多次调用的图片幻灯切换效果
2015/02/28 Javascript
使用CamanJS在Web页面上处理图像的技巧
2015/08/18 Javascript
纯javascript移动优先的幻灯片效果
2015/11/02 Javascript
JS实现日期时间动态显示的方法
2015/12/07 Javascript
微信小程序之购物车功能
2020/09/23 Javascript
微信小程序三级联动地址选择器的实例代码
2017/07/12 Javascript
浅谈vue项目可以从哪些方面进行优化
2018/05/05 Javascript
Vue三层嵌套路由的示例代码
2018/05/05 Javascript
详解关于Vue2.0路由开启keep-alive时需要注意的地方
2018/09/18 Javascript
js实现简单掷骰子效果
2019/10/24 Javascript
python基于urllib实现按照百度音乐分类下载mp3的方法
2015/05/25 Python
浅谈Python类里的__init__方法函数,Python类的构造函数
2016/12/10 Python
Python中index()和seek()的用法(详解)
2017/04/27 Python
Python回文字符串及回文数字判定功能示例
2018/03/20 Python
python入门:这篇文章带你直接学会python
2018/09/14 Python
opencv实现图片模糊和锐化操作
2018/11/19 Python
总结Python图形用户界面和游戏开发知识点
2019/05/22 Python
numpy数组广播的机制
2019/07/12 Python
用Python制作mini翻译器的实现示例
2020/08/17 Python
python 实时调取摄像头的示例代码
2020/11/25 Python
世界领先的在线地板和建筑材料批发商:BuildDirect
2017/02/26 全球购物
银行实习人员自我鉴定
2013/09/22 职场文书
社区工作者感言
2014/03/02 职场文书
经典团队口号大全
2014/06/21 职场文书