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 相关文章推荐
asp 取文本框名称代码
Dec 02 Javascript
网站页面自动跳转实现方法PHP、JSP(下)
Aug 01 Javascript
jQuery 一个图片切换的插件
Oct 09 Javascript
通过js动态操作table(新增,删除相关列信息)
May 23 Javascript
jQuery模拟黑客帝国矩阵效果实例
Jun 28 Javascript
JavaScript编程中布尔对象的基本使用
Oct 25 Javascript
JS经典正则表达式笔试题汇总
Dec 15 Javascript
使用vue打包时vendor文件过大或者是app.js文件很大的问题
Jun 29 Javascript
浅谈ng-zorro使用心得
Dec 03 Javascript
json字符串对象转换代码实例
Sep 28 Javascript
vue-cli3.0实现一个多页面应用的历奇经历记录总结
Mar 16 Javascript
vue使用map代替Aarry数组循环遍历的方法
Apr 30 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中路径问题的解决方案
2006/10/09 PHP
谈PHP生成静态页面分析 模板+缓存+写文件
2009/08/17 PHP
php Hex RGB颜色值互换的使用
2013/05/10 PHP
深入分析php中接口与抽象类的区别
2013/06/08 PHP
PHP中error_log()函数的使用方法
2015/01/20 PHP
PHP查找与搜索数组元素方法总结
2015/06/12 PHP
PHP使用redis实现统计缓存mysql压力的方法
2015/11/14 PHP
基于PHP实现商品成交时发送短信功能
2016/05/11 PHP
PHP中创建和编辑Excel表格的方法
2018/09/13 PHP
Javascript - HTML的request类
2007/01/09 Javascript
Javascript实现CheckBox的全选与取消全选的代码
2010/07/20 Javascript
javascript抖动元素的小例子
2013/10/28 Javascript
node.js中的fs.realpath方法使用说明
2014/12/16 Javascript
js实现的全国省市二级联动下拉选择菜单完整实例
2015/08/17 Javascript
JS实现带圆弧背景渐变效果的导航菜单代码
2015/10/13 Javascript
Vue.js第二天学习笔记(vue-router)
2016/12/01 Javascript
bootstrap 模态框(modal)实现水平垂直居中显示
2017/01/23 Javascript
详解Javascript获取缓存和清除缓存API
2017/05/25 Javascript
es6在react中的应用代码解析
2017/11/08 Javascript
在vue中多次调用同一个定义全局变量的实例
2018/09/25 Javascript
微信小程序实现提交input信息到后台的方法示例
2019/01/19 Javascript
浅谈vue权限管理实现及流程
2020/04/23 Javascript
bootstrap-table后端分页功能完整实例
2020/06/01 Javascript
区分vue-router的hash和history模式
2020/10/03 Javascript
elementui实现预览图片组件二次封装
2020/12/29 Javascript
python下paramiko模块实现ssh连接登录Linux服务器
2015/06/03 Python
Python找出文件中使用率最高的汉字实例详解
2015/06/03 Python
Django ORM框架的定时任务如何使用详解
2017/10/19 Python
Python socket实现的简单通信功能示例
2018/08/21 Python
python爬虫开发之使用python爬虫库requests,urllib与今日头条搜索功能爬取搜索内容实例
2020/03/10 Python
基于Python采集爬取微信公众号历史数据
2020/11/27 Python
高一英语教学反思
2014/01/22 职场文书
《草虫的村落》教学反思
2014/02/16 职场文书
2014年国庆节寄语
2014/09/19 职场文书
乡镇机关党员民主评议表自我评价
2014/09/21 职场文书
安全守法证明
2015/06/23 职场文书