zoukankan      html  css  js  c++  java
  • JGUI源码:Accordion折叠到侧边栏实现(6)

    折叠和非折叠效果如左右图所示

    代码如下

    //折叠
    $.fn.jAccordionfold = function() {
      return this.each(function() {
        var obj = $(this);
        obj.find('.jgui-accordion-navitem').siblings("dd").slideUp();
        obj.find('.jgui-accordion-navitem span').hide();
        obj.find('.jgui-accordion-navitem .jgui-accordion-navitem-more').hide();
      });
    };
    //展开
    $.fn.jAccordionunfold = function() {
      return this.each(function() {
        var obj = $(this);
        obj.find('.jgui-accordion-navitem-more.expanded').closest(".jgui-accordion-navitem").siblings("dd").slideDown();
        obj.find('.jgui-accordion-navitem span').show();
        obj.find('.jgui-accordion-navitem .jgui-accordion-navitem-more').show();
      });
    };

    把所有展开的抽屉项折叠起来,再改变Accordion的宽度即可实现上图效果,收到侧边栏后,点击任意图标能够恢复到正常非折叠状态进行操作。

    $('#folderbtn').click(function(event) {
        if($('#leftpanel').is('.unfold')){//未折叠
            $('#leftpanel').width(50);
            $('#centerpanel').css('left','50px');
            $('#mainlogo').html('J');
            $('#menuaccordion').jAccordionfold();
            
        }
        else{
            $('#leftpanel').width(300);
            $('#centerpanel').css('left','300px');
            $('#mainlogo').html('JGUI DEMO');
            $('#menuaccordion').jAccordionunfold();
        }
        $('#leftpanel').toggleClass('unfold');
        $('#folderbtn').toggleClass('icon-menu-unfold icon-menu-fold');
    });
    $("#menuaccordion .jgui-accordion-navitem").click(function(event) {
        if(!$('#leftpanel').is('.unfold')){
            $('#leftpanel').width(300);
            $('#centerpanel').css('left','300px');
            $('#mainlogo').html('JGUI DEMO');
            $('#menuaccordion').jAccordionunfold();
            $('#leftpanel').toggleClass('unfold');
            $('#folderbtn').toggleClass('icon-menu-unfold icon-menu-fold');
        }
      });

    1、目前折叠起来的图标没有带tooltip或者菜单,如果有更好的用户体验,当鼠标放到折叠的菜单上时,应该显示一个tooltip或者菜单,这个将在以后实现。

    2、目前的实现方法是在全局都可见的,应该使用一个accordion对象封装起来,也将后续实现。

  • 相关阅读:
    LR网页细分图中的时间详解
    LoadRunner系列实例之— 01录制cas登陆脚本
    Oracle 身份证校验
    Oracle中执行存储过程call和exec区别
    MD5 加密的密码在数据库重置
    python学习 (二十九) range函数
    python学习 (二十八) Python的for 循环
    二十一 守护线程
    二十 线程的优先级
    十九 yield方法
  • 原文地址:https://www.cnblogs.com/zhaogaojian/p/10440914.html
Copyright © 2011-2022 走看看