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对象封装起来,也将后续实现。
JGUI源码:Accordion折叠到侧边栏实现(6)的更多相关文章
- JGUI源码:从头开始,建一个自己的UI框架(1)
开篇 1.JGUI是为了逼迫自己研究底层点的前端技术而做的框架,之前对web底层实现一直没有深入研究,有了技术瓶颈,痛定思痛从头研究, 2.虽然现在vue技术比较火,但还在发展阶段,暂时先使用JQue ...
- JGUI源码:鼠标中键滚动再次优化(5)
//电脑端中键滚动事件 var mousewheel = getBrowserInfo() == "Firefox" ? "DOMMouseScroll" : ...
- JGUI源码:Accordion鼠标中键滚动和手机端滑动实现(2)
本文是抽屉组件在PC端滚动鼠标中键.手机端滑动时,滚动数据列表实现方法,没有使用iscroll等第三方插件,支持火狐,谷歌,IE8+等浏览器. 演示在:www.jgui.com Github地址:ht ...
- JGUI源码:Tab组件实现(9)
程序界面效果如下 Tab组件由多个TabItem组成,超出部分隐藏,可以通过左右按钮滑动显示出来 1.封装 // 初始化内容 $(function () { J.JTab($(".jgui- ...
- JGUI源码:JS菜单动态绑定(8)
我们知道Jquery绑定事件后的新添加的对象是不响应事件的,为了解决这个问题,动态添加的对象需要从新绑定,使用一个init方法实现代码如下 //Accordion封装 (function($) { J ...
- JGUI源码:Accordion兼容IE8实现(3)
本来不考虑IE8,但是还是有部分客户用的XP,有不代表没有,尽量做一下兼容处理1.before,after,要使用:不能使用:: 2.阻止冒泡 function stopPropagation(e) ...
- JGUI源码:组件及函数封装方法(7)
以Accordion为例1.在base.js定义一个对象,这样可以和JQuery对象区分开,用户使用组件时比较清晰一点,也可以在这里引用多个库. var JGUI = J = { version : ...
- JGUI源码:实现简单进度条(19)
程序效果如下 实现进度条动画主要有两种方法:(1)使用缓动,(2)使用Jquery Animate,本文使用第二种方法,先实现代码,后续进行控件封装 <style> .jgui-proce ...
- JGUI源码:实现蒙版层显示(18)
有的时候需要显示一个蒙版层,蒙版层显示的主要原理是在指定元素比如div上创建一个子元素div,设置absolute.宽高100%.设置z-index置于顶层,设置半透明效果,fadein,fadeou ...
随机推荐
- SQLServer之创建唯一非聚集索引
创建唯一非聚集索引典型实现 唯一索引可通过以下方式实现: PRIMARY KEY 或 UNIQUE 约束 在创建 PRIMARY KEY 约束时,如果不存在该表的聚集索引且未指定唯一非聚集索引,则将自 ...
- Linux Collection:系统信息和配置
PAS Linux系统配置相关文件 /etc 目录中是系统和各类软件的配置文件 /var/log 系统日志 /proc 系统运行信息 PAS /boot空间不足 查看内核 dpkg --get-sel ...
- for循环和foreach循环遍历集合的效率比较
先上代码 package com.test; import java.util.ArrayList; import java.util.LinkedList; import java.util.Lis ...
- 【Python 03】程序设计与Python语言概述
人生苦短,我用Python. Python在1990年诞生于荷兰,2010年Python2发布最后一版2.7,Python核心团队计划在2020年停止支持 Python2,目前Python3是未来. ...
- Koa 框架介绍
Node.js 是一个异步的世界,官方 API 支持的都是 callback 形式的异步编程模型,这 会带来许多问题,例如:callback 嵌套问题 ,异步函数中可能同步调用 callback 返回 ...
- docker 安装 mongodb
1.docker search mongo 2.docker pull mongo 3.//docker run -d --name mymongo -p 27017:27017 -v /home/h ...
- centos查看系统信息命令
1.cd - :返回上次所在的目录 2.查看系统版本 cat /etc/redhat-release 3.查看linux内核版本1)cat /proc/version 2) uname -a3) un ...
- NetSec2019 20165327 Exp7 网络欺诈防范
NetSec2019 Exp7 网络欺诈防范 一.本实践的目标理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法.具体实践有 (1)简单应用SET工具建立冒名网站 (1分) (2)ette ...
- UOJ143 万圣节的数列 构造
传送门 做过这道题,然后这道题告诉你怎么构造数据-- 一种可行的构造方式是:将奇数和偶数分成两半,奇数放在偶数前面,然后除以2,再递归下去处理. 构造的正确性是显然的:如果存在"奇数偶数奇数 ...
- CF452F Permutations/Luogu2757 等差子序列 树状数组、Hash
传送门--Luogu 传送门--Codeforces 如果存在长度\(>3\)的等差子序列,那么一定存在长度\(=3\)的等差子序列,所以我们只需要找长度为\(3\)的等差子序列.可以枚举等差子 ...