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 模式实例 观察者模式
Oct 24 Javascript
Javascript 键盘keyCode键码值表
Dec 24 Javascript
基于JQuery实现CheckBox全选全不选
Jun 27 Javascript
jQuery中:empty选择器用法实例
Dec 30 Javascript
JavaScript验证Email(3种方法)
Sep 21 Javascript
JavaScript 冒泡排序和选择排序的实现代码
Sep 03 Javascript
详解vuejs之v-for列表渲染
Jun 22 Javascript
vue2.0 路由模式mode=&quot;history&quot;的作用
Oct 18 Javascript
实例讲解JavaScript预编译流程
Jan 24 Javascript
layui清空,重置表单数据的实例
Sep 12 Javascript
vue实现编辑器键盘抬起时内容跟随光标距顶位置向上滚动效果
May 28 Javascript
浅谈JavaScript窗体Window.ShowModalDialog使用
Jul 22 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导出Word文档的原理和实例
2013/10/21 PHP
PHP生成指定长度随机数最简洁的方法
2014/07/14 PHP
php中Socket创建与监听实现方法
2015/01/05 PHP
yii2.0实现pathinfo的形式访问的配置方法
2016/04/06 PHP
PHP 以POST方式提交XML、获取XML,解析XML详解及实例
2016/10/26 PHP
PHP实现常用排序算法的方法
2020/02/05 PHP
Track Image Loading效果代码分析
2007/08/13 Javascript
浅析javascript操作 cookie对象
2014/12/26 Javascript
js实现漂浮回顶部按钮实例
2015/05/06 Javascript
jQuery跨域问题解决方案
2015/08/03 Javascript
jQuery对象与DOM对象转换方法详解
2016/05/10 Javascript
jquery+ajax实现直接提交表单实例分析
2016/06/17 Javascript
JS实现的手机端精简幻灯片效果
2016/09/05 Javascript
ES6/JavaScript使用技巧分享
2017/12/14 Javascript
jQuery实现标签子元素的添加和赋值方法
2018/02/24 jQuery
你应该了解的JavaScript Array.map()五种用途小结
2018/11/14 Javascript
vue-openlayers实现地图坐标弹框效果
2020/09/24 Javascript
vue从后台渲染文章列表以及根据id跳转文章详情详解
2020/12/14 Vue.js
[02:12]DOTA2英雄基础教程 变体精灵
2013/12/16 DOTA
python getopt 参数处理小示例
2009/06/09 Python
python使用reportlab实现图片转换成pdf的方法
2015/05/22 Python
Python聚类算法之基本K均值实例详解
2015/11/20 Python
Python中文分词工具之结巴分词用法实例总结【经典案例】
2017/04/15 Python
Python 爬虫之超链接 url中含有中文出错及解决办法
2017/08/03 Python
Python基础教程之内置函数locals()和globals()用法分析
2018/03/16 Python
Python实现常见的回文字符串算法
2018/11/14 Python
在pycharm中配置Anaconda以及pip源配置详解
2019/09/09 Python
python批量生成身份证号到Excel的两种方法实例
2021/01/14 Python
input file上传文件样式支持html5的浏览器解决方案
2012/11/14 HTML / CSS
Super-Pharm波兰:药房和香水在一个地方
2020/08/18 全球购物
介绍一下grep命令的使用
2015/06/12 面试题
酒店前厅员工辞职信
2014/01/08 职场文书
党员干部2014全国两会学习心得体会
2014/03/10 职场文书
一篇文章带你学习Mybatis-Plus(新手入门)
2021/08/02 Java/Android
js中Object.create实例用法详解
2021/10/05 Javascript
muduo TcpServer模块源码分析
2022/04/26 Redis