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 相关文章推荐
关于实现代码语法标亮 dp.SyntaxHighlighter
Feb 02 Javascript
jquery一般方法介绍 入门参考
Jun 21 Javascript
基于Jquery实现的一个图片滚动切换
Jun 21 Javascript
js将控件隐藏的方法及display属性介绍
Jul 04 Javascript
Javascript控制页面链接在新窗口打开具体方法
Aug 16 Javascript
js动态创建及移除div的方法
Jun 03 Javascript
jQuery中ScrollTo用法示例
Sep 04 Javascript
ES6概念 Symbol toString()方法
Dec 25 Javascript
JS 设置Cookie 有效期 检测cookie
Jun 15 Javascript
使用JS实现气泡跟随鼠标移动的动画效果
Sep 16 Javascript
webpack搭建vue 项目的步骤
Dec 27 Javascript
jQuery实现ajax的嵌套请求案例分析
Feb 16 jQuery
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 str_pad 函数使用详解
2009/01/13 PHP
javascript 小型动画组件与实现代码
2010/06/02 PHP
php通过文件头检测文件类型通用代码类(zip,rar等)
2010/10/19 PHP
php发送post请求函数分享
2014/03/06 PHP
php中session定期自动清理的方法
2015/11/12 PHP
PHP+iframe图片上传实现即时刷新效果
2016/11/18 PHP
php数组指针函数功能及用法示例
2020/02/11 PHP
用tip解决Ext列宽度不够的问题
2008/12/13 Javascript
jquery 简短右键菜单 多浏览器兼容
2010/01/01 Javascript
前淘宝前端开发工程师阿当的PPT中有JS技术理念问题
2010/01/15 Javascript
jQuery文本框(input textare)事件绑定方法教程
2013/04/24 Javascript
JS图片自动轮换效果实现思路附截图
2014/04/30 Javascript
JS的location.href跳出框架打开新页面的方法
2014/09/04 Javascript
JavaScript监听文本框回车事件并过滤文本框空格的方法
2015/04/16 Javascript
JS hashMap实例详解
2016/05/26 Javascript
canvas实现手机端用来上传用户头像的代码
2016/10/20 Javascript
在js代码拼接dom对象到页面上去的模板总结(必看)
2017/02/14 Javascript
BootStrap中的Fontawesome 图标
2017/05/25 Javascript
基于js中的存储键值对以及注意事项介绍
2018/03/30 Javascript
Vue自定义全局Toast和Loading的实例详解
2019/04/18 Javascript
解决微信小程序云开发中获取数据库的内容为空的方法
2019/05/15 Javascript
微信小程序—setTimeOut定时器的问题及解决
2019/07/26 Javascript
layui实现数据表格隐藏列的示例
2019/10/25 Javascript
详解Vue数据驱动原理
2020/11/17 Javascript
vue项目中企业微信使用js-sdk时config和agentConfig配置方式详解
2020/12/15 Vue.js
[38:23]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第一场
2014/05/24 DOTA
[01:09:13]DOTA2-DPC中国联赛 正赛 CDEC vs XG BO3 第三场 1月19日
2021/03/11 DOTA
CSS3实现10种Loading效果
2016/07/11 HTML / CSS
HTML 5.1来了 9月份正式发布 更新内容预览
2016/04/26 HTML / CSS
四川internet信息高速公路(C#)笔试题
2012/02/29 面试题
人力资源管理专业毕业生推荐信
2013/11/07 职场文书
技术副厂长岗位职责
2013/12/26 职场文书
2015年全国保险公众宣传日活动方案
2015/05/06 职场文书
心得体会格式及范文
2016/01/25 职场文书
利用python实时刷新基金估值(摸鱼小工具)
2021/09/15 Python
vue实现登陆页面开发实践
2022/05/30 Vue.js