基于jQuery开发的手风琴插件 jquery.accordion.js
/*
* 手风琴插件说明:
* 1、treeTrunk对应树干
* 2、treeLeaf对应树叶,html代码结构一般为treeTrunk.next()元素
* 3、treeTrunkActiveClass是树干展开后添加的样式
* 4、treeType是触发手风琴效果的事件形式
* 5、treeIs 加载后是否将第一个树干展开
* 6、speed 展开、闭合动画执行时间
* 7、插件命名为jquery.accordion.js
*/
;
(function($) {
$.fn.accordion = function(options) {
//插件默认值
var defaultVal = {
treeTrunk: 'a', //树干--点击需要展开的元素
treeLeaf: 'ul', //树叶--点击展开元素后显示的内容
treeTrunkActiveClass: 'active', //当前树干--当前展开树干元素的添加的样式
treeType: 'click', //触发展开/关闭的事件类型:click,mouseenter,mouseleave,mouseout,mouseover
treeIs: true, //页面加载后是否显示第一个树干的树叶内容
speed:500//动画执行时间
};
var obj = $.extend(defaultVal, options); //合并参数 return this.each(function() {
var selObject = $(this); //获取触发手风琴事件对象
var selTreeTrunk = selObject.find(obj.treeTrunk); //获取当前对象下的树干元素
var selTreeLeaf = selTreeTrunk.next(obj.treeLeaf); //获取当前对象下的树干元素下的树叶 //绑定事件
selTreeTrunk.bind(obj.treeType, function() {
//判断树叶是否显示
if($(this).next(selTreeLeaf).is(':visible')) {
//关闭树叶
$(this).next(selTreeLeaf).slideUp(obj.speed);
//移除active样式
$(this).removeClass(obj.treeTrunkActiveClass);
} else {
//所有树干移除移除active样式
selTreeTrunk.removeClass(obj.treeTrunkActiveClass);
//当前树干添加active样式
$(this).addClass(obj.treeTrunkActiveClass);
//所有树叶闭合
selTreeTrunk.next(selTreeLeaf).slideUp(obj.speed);
//当前树干下的树叶展开
$(this).next(selTreeLeaf).slideDown(obj.speed);
}
});
//页面加载后触发第一个树干显示树叶内容
if(obj.treeIs) {
selTreeTrunk.eq(0).trigger(obj.treeType);
}
});
}
})(jQuery);
2、插件使用
<!DOCTYPE html>
<html> <head>
<meta charset="UTF-8">
<title>基于jQuery的手风琴插件</title>
<style type="text/css">
* {
padding: 0;
margin: 0;
list-style: none;
} ul.sidebar-menu {
width: 200px;
padding: 10px;
} ul.sidebar-menu>li>a {
font-size: 16px;
line-height: 20px;
color: #000;
text-decoration: none;
} ul.sidebar-menu>li>a:hover,
ul.sidebar-menu>li>a.active {
background-color: #675C7C;
color: white;
} ul.sidebar-menu>li>ul {
display: none;
} ul.sidebar-menu>li>ul>li>a {
display: inline-block;
font-size: 14px;
line-height: 18px;
color: #000;
text-decoration: none;
}
</style>
</head> <body>
<ul class="sidebar-menu">
<li class="treeview">
<a href="#">
标题1
</a>
<ul>
<li class="">
<a href="index.html">标题1-1</a>
</li>
<li>
<a href="index2.html">标题1-2</a>
</li>
</ul>
</li>
<li class="treeview">
<a href="#">
标题2
</a>
<ul>
<li class="">
<a href="index.html">标题2-1</a>
</li>
<li>
<a href="index2.html">标题2-2</a>
</li>
</ul>
</li>
</ul>
<script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script src="js/jquery.accordion.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
$(function() {
$('.sidebar-menu').accordion({
//获取树干元素
treeTrunk: '.treeview a'
})
})
</script> </body> </html>
说明:
(1)、jquery.accordion.js插件的路径要配置对。
(2)、可以自己编辑页面的展示样式,如active样式。
3、展示效果:
请直接运行上述代码查看插件效果。

基于jQuery开发的手风琴插件 jquery.accordion.js的更多相关文章
- 使用jQuery开发tab选项卡插件
为了复习巩固jQuery的插件开发.HTML和CSS方面的知识,做了一个简单的tab选项卡插件,简单记录一下开发.使用的过程,以备日后使用. 一.插件效果 tab选项卡插件常用的功能均已实现,包括:动 ...
- jQuery 开发一个简易插件
jQuery 开发一个简易插件 //主要内容 $.changeCss = function(options){ var defaults = { color:'blue', ele:'text', f ...
- 使用jQuery开发tab选项卡插件(可以右键关闭多个标签)
在前一篇“使用jQuery开发tab选项卡插件”的基础上添加了tab标签右键关闭菜单功能,菜单主要包括:关闭当前标签.关闭左侧标签.关闭右侧标签.关闭其他.关闭全部. 一.插件效果 二.实现思路 为w ...
- jQuery响应式幻灯片插件jquery.glide.js(支持触摸&轻量级)
找到一款好的幻灯片插件不容易,找到一款功能全并且使用很简单的幻灯片更不容易,今天为大家分享一款全能的幻灯片插件glide.js,也是我现在在使用的一款插件. jquery.glide.js是响应和触摸 ...
- jQuery文件上传插件jQuery Upload File 有上传进度条
jQuery文件上传插件jQuery Upload File 有上传进度条 jQuery文件上传插件jQuery Upload File,插件使用简单,支持单文件和多文件上传,支持文件拖拽上传,有进度 ...
- jQuery 表单验证插件 jQuery Validation Engine 使用
jQuery 表单验证插件 jQuery Validation Engine 使用方式如下: 1.引入头文件(注意一定要把jQuery放在前面),指定使用 jQuery Validation Engi ...
- jquery判断浏览器版本插件,jquery-browser.js
jquery判断浏览器版本插件,jquery-browser.js,jquery 判断是否为ie浏览器插件 >>>>>>>>>>>&g ...
- jQuery懒加载插件jquery.lazyload.js使用说明实例
jQuery懒加载插件jquery.lazyload.js使用说明实例很多网站都会用到‘图片懒加载’这种方式对网站进行优化,即延迟加载图片或符合某些条件才开始加载图片.懒加载原理:浏览器会自动对页面中 ...
- [转]jquery开发自定义的插件总结
本文转自:http://www.cnblogs.com/Jimmy009/archive/2013/01/17/jquery%E6%8F%92%E4%BB%B6.html 前几天在玩jquery,今天 ...
随机推荐
- 九度OJ:1002-Grading
时间限制:1 秒内存限制:32 兆特殊判题:否提交:24102解决:6126 题目描述: Grading hundreds of thousands of Graduate Entrance Exam ...
- (cljs/run-at (JSVM. :browser) "搭建刚好可用的开发环境!")
前言 书接上一回,在了解cljs基本语法后并在clojurescript.net的奇特错误提示后,我们必须痛定思痛地搭建一个本地的开发环境,以便后续深入地学习cljs. 现有的构建工具 由于浏览器 ...
- JS面向对象一
面向对象分为三大类 封装,继承,多态! 封装就是在一个函数方法中嵌套另外一个函数方法,外层函数方法返回内层函数方法里面的结果,其中内层函数要调用外层函数定义的局部变量 每个函数方法就是一个局部作用域, ...
- as 快捷键
as 快捷键 Ctrl+G / Ctrl+Alt+Shift+G:查询变量或者函数或者类在哪里被使用或被调用,后者是前者的复杂表现,可以选择查询范围等. Alt+H:查找功能,全局查找 F4:查看类 ...
- Android使用OKHTTP解析JSON数据
为了代码重用,我们首先封装一个类.这个类是HttpUtil HttpUtil.java package com.example.asus.networktest; import okhttp3.OkH ...
- PVM的安装和编译PVM程序
最近刚开始学习并发编程,学习到了PVM这一块.关于在linux系统中PVM的安装,真是要我的命,繁琐死了,最关键是我对linux也是刚开始学,还在继续学习<鸟哥的linux私房菜>一书.好 ...
- C#设置WebBrowser默认浏览器
由于VS的WebBrowser控件的默认浏览器是IE7,好多网页兼容性不是很好,所以要修改下默认浏览器. 设置前: 设置后: 在WebBrowser界面加载时执行以下方法,设置浏览器. /// ...
- 前端需要注意的seo
1 合理的title ,description ,keyswords 搜索引擎对这三项的权重逐渐减小,title 强调重点即可 ,重要的关键字不要超过两次,而且要靠前. 2 不同的tilte要有所不同 ...
- Eclipse 快捷键和模板设置
快捷键设置 菜单 Window --> Preferences---General---Keys Content Assist: 代码提示快捷键 模板设置 新建一个模板 在Insert Va ...
- vue2.0设置proxyTable使用axios进行跨域请求
这里请求的是知乎日报的api,由@izzyleung这位大神提供的,这是github地址. 在vue-cli构建的项目中先安装axios npm install axios -S 这里暂不考虑用vue ...