jQuery Collapse1.1.0折叠插件简单使用


Posted in jQuery onAugust 28, 2017

本文实例为大家分享了jQuery Collapse1.1.0折叠插件的使用,供大家参考,具体内容如下

/*!
* jQuery collapse - A Wizard Plugin - http://www.cnblogs.com/yeyuansheng/
* ------------------------------------------------------------------------------------
*
* @version 1.1.0
* @since 2017.08.28
* @author 夜原生
* @documentation http://www.cnblogs.com/yeyuansheng/
*
* Usage with default values:
* ------------------------------------------------------------------------------------
* {
* panel: '',//默认空为第一个标签
* content: '',//默认空为第二个标签
* active: 'active',//点击样式
* shut: true,//展开的在次点击可闭合
* style: 'y',//x,y,0上下左右滑动展开/无动作展开
* speed: 200,//动作的速度
* event: "click",//动作
* class: 'active',//item 样式
* func: function(){},//增加事件
* open:''//默认打开
* }
*/

(function($) {
  var collapse = {
    version:'1.1.0',
    style:{
      slideRight: {
        width : "hide", 
        paddingLeft : "hide", 
        paddingRight : "hide", 
        marginLeft : "hide", 
        marginRight : "hide" 
      },
      slideLeft: {
        width : "show",
        paddingLeft : "show",
        paddingRight : "show",
        marginLeft : "show",
        marginRight : "show"
      },
      slideUp: {
        borderTopWidth: "hide",
        borderBottomWidth: "hide",
        paddingTop: "hide",
        paddingBottom: "hide",
        height: "hide"
      },
      slideDown: {
        borderTopWidth: "show",
        borderBottomWidth: "show",
        paddingTop: "show",
        paddingBottom: "show",
        height: "show"
      }
    },
    init:function(options){
      var opts = $.extend({}, $.fn.collapse.defaults, options);
      if(opts.style == 'x' && options.shut == 'undefined'){
        opts.shut = false;
      }
      return opts;
    },
    clickChange:function(obj,op){
      var panel = (op.panel == '')?$(obj).children(':first'):$(obj).find('> '+op.panel);
      panel.on(op.event,function(){ 
        var parent = $(this).parent();
        var sub = (op.content == '')?parent.children().eq(1):parent.find('> '+op.content);
        if($(sub).is(':visible')) {
          if(op.shut){
            collapse._animate(sub,op,0,function(){
              parent.removeClass(op.class);
              op.func();
            });
          }
        }else{
          parent.siblings().each(function(){
            var t = $(this);
            if(t.hasClass(op.active)){
              var uls = (op.content == '')?t.children().eq(1):t.find('> '+op.content);
              if(uls.length == 0){
                t.removeClass(op.active);
              }else{
                collapse._animate(uls,op,0,function(){
                  t.removeClass(op.active);
                });
              } 
            }
          });
          parent.addClass(op.active);
          collapse._animate(sub,op,1,function(){
            op.func();
          });
        }
      });
    },
    itemChange:function(item,op){
      var uls = (op.content == '')?$(item).children().eq(1):$(item).children().find('> '+op.content);
      uls.children().on(op.event,function(){
        $(item).parent().children().each(function(){
          if(op.content == ''){
            $(this).children().eq(1).children().removeClass(op.class);
          }else{
            $(this).children().find('> '+op.content).children().removeClass(op.class);
          }
        });
        $(this).addClass(op.class);
      });
    },
    _animate:function(obj,op,bool,callback){
      if(op.style){
        if(bool){
          slide =(op.style == 'x')?collapse.style.slideLeft:collapse.style.slideDown;
        }else{
          slide =(op.style == 'x')?collapse.style.slideRight:collapse.style.slideUp;
        } 
        obj.animate(slide,op.speed,callback); 
      }else{
        (bool)?obj.show():obj.hide();//可以改用CLASS控制
      }
    },
    open:function(obj,op,open){
      var li = $(obj).children().eq(open[0]);
      li.addClass(op.active);
      var ul = (op.content == '')?li.children().eq(1):li.find('> '+op.content);
      ul.show();
      ul.children().eq(open[1]).addClass(op.class);
    }
  }
  $.fn.collapse = function(options){
    var opts = collapse.init(options);
    if(opts.open != '')collapse.open(this,opts,opts.open);
    $(this).children().each(function(){
      collapse.clickChange(this,opts);
      collapse.itemChange(this,opts);
    }); 
  }
  $.fn.collapse.defaults = { 
    panel: '',
    content: '',
    active: 'active',
    shut: true,
    style: 'y',
    speed: 200,
    event: "click",
    class: 'active',
    func: function(){},
    open:''
  }
})(jQuery);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

jQuery 相关文章推荐
jQuery用noConflict代替$的实现方法
Apr 12 jQuery
jQuery手风琴的简单制作
May 12 jQuery
jQuery插件FusionCharts绘制的2D条状图效果【附demo源码】
May 13 jQuery
jQuery动画_动力节点节点Java学院整理
Jul 04 jQuery
jQuery绑定事件方法及区别(bind,click,on,live,one)
Aug 14 jQuery
基于jquery的on和click的区别详解
Jan 15 jQuery
js和jQuery以及easyui实现对下拉框的指定赋值方法
Jan 23 jQuery
jQuery实现的回车触发按钮事件功能示例
Mar 25 jQuery
Vue项目中使用jquery的简单方法
May 16 jQuery
jQuery创建折叠式菜单
Jun 15 jQuery
jquery+ajax实现异步上传文件显示进度条
Aug 17 jQuery
jquery实现抽奖功能
Oct 22 jQuery
解决IE7中使用jQuery动态操作name问题
Aug 28 #jQuery
jQuery菜单实例(全选,反选,取消)
Aug 28 #jQuery
基于jQuery实现图片推拉门动画效果的两种方法
Aug 26 #jQuery
详解webpack3如何正确引用并使用jQuery库
Aug 26 #jQuery
jQuery图片缩放插件smartZoom使用实例详解
Aug 25 #jQuery
使用jQuery实现页面定时弹出广告效果
Aug 24 #jQuery
使用jquery+iframe做一个ajax上传效果(实例)
Aug 24 #jQuery
You might like
php 连接mysql连接被重置的解决方法
2011/02/15 PHP
如何在PHP中使用正则表达式进行查找替换
2013/06/13 PHP
php+xml实现在线英文词典查询的方法
2015/01/23 PHP
浅谈本地WAMP环境的搭建
2015/05/13 PHP
Netbeans 8.2将支持PHP7 更精彩
2016/06/13 PHP
利用ajax和PHP实现简单的流程管理
2017/03/23 PHP
actionscript与javascript的区别
2011/05/25 Javascript
读取input:file的路径并显示本地图片的方法
2013/09/23 Javascript
JQGrid的用法解析(列编辑,添加行,删除行)
2013/11/08 Javascript
javascript获取select的当前值示例代码(兼容IE/Firefox/Opera/Chrome)
2013/12/17 Javascript
使用AngularJS来实现HTML页面嵌套的方法
2015/06/17 Javascript
创建自己的jquery表格插件
2015/11/25 Javascript
BootStrap中关于Select下拉框选择触发事件及扩展
2016/11/22 Javascript
jquery uploadify如何取消已上传成功文件
2017/02/08 Javascript
vue如何在自定义组件中使用v-model
2018/05/14 Javascript
jQuery插件实现弹性运动完整示例
2018/07/07 jQuery
如何使用vue slot创建一个模态框的实例代码
2020/05/24 Javascript
js实现点击烟花特效
2020/10/14 Javascript
[01:09:10]NB vs Liquid Supermajor小组赛 A组胜者组决赛 BO3 第一场 6.2
2018/06/04 DOTA
[11:12]2018DOTA2国际邀请赛寻真——绿色长城OpTic
2018/08/10 DOTA
Python ZipFile模块详解
2013/11/01 Python
Python过滤函数filter()使用自定义函数过滤序列实例
2014/08/26 Python
Python实现小数转化为百分数的格式化输出方法示例
2017/09/20 Python
Python基于pygame模块播放MP3的方法示例
2017/09/30 Python
Python基础教程之内置函数locals()和globals()用法分析
2018/03/16 Python
python3第三方爬虫库BeautifulSoup4安装教程
2018/06/19 Python
python调用支付宝支付接口流程
2019/08/15 Python
python实现数据清洗(缺失值与异常值处理)
2019/12/02 Python
乐高西班牙官方商店:LEGO Shop ES
2019/12/01 全球购物
Haggar官网:美国男装品牌
2020/02/16 全球购物
介绍一下木马病毒的种类
2015/07/26 面试题
中级会计大学生职业生涯规划书
2014/09/16 职场文书
阿甘正传观后感
2015/06/01 职场文书
宾馆安全管理制度
2015/08/06 职场文书
2016年6月份红领巾广播稿
2015/12/21 职场文书
Python手拉手教你爬取贝壳房源数据的实战教程
2021/05/21 Python