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 过滤数组重复数据函数(加强版)
May 31 Javascript
基于jquery实现漂亮的动态信息提示效果
Aug 02 Javascript
JavaScript中反正弦函数Math.asin()的使用简介
Jun 14 Javascript
jquery动态增加删减表格行特效
Nov 20 Javascript
MvcPager分页控件 适用于Bootstrap
Jun 03 Javascript
Node.js环境下Koa2添加travis ci持续集成工具的方法
Jun 19 Javascript
clipboard.js在移动端复制失败的解决方法
Jun 13 Javascript
用Node编写RESTful API接口的示例代码
Jul 04 Javascript
详解angular应用容器化部署
Aug 14 Javascript
浅谈Webpack4 Tree Shaking 终极优化指南
Nov 18 Javascript
小程序外卖订单界面的示例代码
Dec 30 Javascript
微信小程序自定义yPicker组件实现省市区三级联动功能
Oct 29 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 MPDF中文乱码的解决方式
2015/12/08 PHP
PHP中引用类型和值类型功能与用法示例
2019/02/26 PHP
Mac系统下搭建Nginx+php-fpm实例讲解
2020/12/15 PHP
JavaScript入门教程(2) JS基础知识
2009/01/31 Javascript
基于jQuery的计算文本框字数的代码
2012/06/06 Javascript
Js判断CSS文件加载完毕的具体实现
2014/01/17 Javascript
Jquery仿IGoogle实现可拖动窗口示例代码
2014/08/22 Javascript
JQuery右键菜单插件ContextMenu使用指南
2014/12/19 Javascript
Javascript访问器属性实例分析
2014/12/30 Javascript
js网页滚动条滚动事件实例分析
2015/05/05 Javascript
JavaScript判断对象是否为数组
2015/12/22 Javascript
利用Javascript仿Excel的数据透视分析功能
2016/09/07 Javascript
jquery获取点击控件的绝对位置简单实例
2016/10/13 Javascript
js仿手机页面文件下拉刷新效果
2016/10/14 Javascript
DOM 事件的深入浅出(一)
2016/12/05 Javascript
基于JavaScript实现轮播图原理及示例
2020/04/10 Javascript
jQuery实现火车票买票城市选择切换功能
2017/09/15 jQuery
详解React-Native全球化多语言切换工具库react-native-i18n
2017/11/03 Javascript
基于node打包可执行文件工具_Pkg使用心得分享
2018/01/24 Javascript
vue中设置height:100%无效的问题及解决方法
2018/07/27 Javascript
实用的Vue开发技巧
2019/05/30 Javascript
vue store之状态管理模式的详细介绍
2019/06/13 Javascript
解决使用PyCharm时无法启动控制台的问题
2019/01/19 Python
Python 寻找局部最高点的实现
2019/12/05 Python
Python3通过chmod修改目录或文件权限的方法示例
2020/06/08 Python
python实现逻辑回归的示例
2020/10/09 Python
Python利用myqr库创建自己的二维码
2020/11/24 Python
python爬虫基础之urllib的使用
2020/12/31 Python
洛杉矶生活休闲而精致的基础品牌:Mika Jaymes
2018/01/07 全球购物
ALDO美国官网:加拿大女鞋品牌
2018/12/28 全球购物
SQL Server提供的3种恢复模型都是什么? 有什么区别?
2012/05/13 面试题
Linux常见面试题
2016/10/04 面试题
工作室成员个人发展规划范文
2014/01/24 职场文书
2014年除四害工作总结
2014/12/06 职场文书
检举信的写法
2019/04/10 职场文书
nginx服务器的下载安装与使用详解
2021/08/02 Servers