轻量级jquery框架之--布局(layout)

布局需求

(1)支持横向生成布局项即可,不需要纵向生成布局。

(2)支持布局项右侧收缩功能

(3)支持自定义布局项图标、标题,并提供动态修改布局项图片和标题的api

(4)支持JSON/html/iframe 三种数据加载方式

(5)提供动态修改请求参数(url、参数)并可以重新加载数据的api

(6)layout依赖于panel组件并支持工具栏定义(依赖工具栏)

API设计

        /**
        * args={title:‘标题‘,iconCls:‘按钮样式‘}/args=title
        ***/
        setTitle: function () {
            var args = arguments[0];
            return this.each(function () {
                $(this).data("panels")[args.panelIdx].panel(‘setTitle‘, args);
            });
        },
        /**
        *args={
            panelIdx:面板的索引、对应items里面的数据下标,
            content: null,//url地址
            dataType:‘html/json/iframe‘,
            title:‘设置该项会改变标题,可是不设置‘,
            iconCls:‘设置新的图标,可是不设置‘
        }
        **/
        load: function () {
            var args = arguments[0];
            return this.each(function () {
                var $p=$(this).data("panels")[args.panelIdx];
                $p.panel(‘load‘, args);
                if (typeof args.title != ‘undefined‘) {
                    var as={title:args.title};
                    if (typeof args.iconCls != ‘undefined‘)
                        as.iconCls = args.iconCls;
                    $p.panel(‘setTitle‘, as);
                }

            });
        }

面板配置JSON

      $(function () {
            $layout = $("#main_body").layout({
                items: [
                  {
                      width: 220, //宽度
                      dragable: true, //是否可以拖拉改变大小
                      title: ‘系统面板‘,
                      iconCls: ‘myaccount‘,
                      content: ‘我的菜单面板内容‘
                  },

                  {
                      width: ‘auto‘, //宽度
                      title: ‘模块2‘,
                      iconCls: ‘outbox‘,
                      dataType: ‘html‘,//html/json/iframe
                      content: ‘data/html.html‘,
                      onLoaded: function (pr) {
                          if (idx == 2)
                              $(this).html(JSON.stringify(pr));
                          console.log("html onLoaded fire! " + JSON.stringify(pr));
                      }
                  }
                  ,{
                      width: 200, //宽度
                      title: ‘右侧模块‘,
                      iconCls: ‘settings‘,
                      dataType: ‘json‘,//html/json/iframe
                      content: ‘data/test.ashx?flag=panel‘,
                      onLoaded: function (pr) {
                          console.log("onLoaded fire! " + JSON.stringify(pr));
                          $(this).html(JSON.stringify(pr));
                      },
                      toolbar: [{
                          iconCls: ‘‘,
                          text: ‘确认‘,
                          click: function (pr) {
                              alert(‘确认‘);
                          }
                      }, {
                          iconCls: ‘‘,
                          statu: false,
                          text: ‘取消‘,
                          click: function (pr) {
                              alert(‘取消‘);
                          }
                      }]
                  }
                ],
                expand: function (pr) {//展开,收缩 pr=max/min
                    console.log("expand:" +pr);
                },
                onDragStop: function (pr) {//拖动结束事件
                    console.log("onDragStop:" +JSON.stringify(pr));
                }
            });
        });

布局预览

代码下载:

  https://code.csdn.net/hjwen/open-ui/tree/master

时间: 2024-10-13 22:00:12

轻量级jquery框架之--布局(layout)的相关文章

轻量级jquery框架之--面板(panel)

面板需求: (1)支持可拖拽,面板将作为后期的布局组件.window组件.alert组件的基础. (2)支持自定义工具栏,工具栏位置定义在面板底部,工具栏依赖toolbar组件. (3)支持加载JSON,HTML,IFRAME三种数据格式的请求,支持动态reload重加载,重装时可以重新设置参数和url. (4)支持自定义标题(可动态修改标题).图标样式. (5)支持扩大缩小.右侧收起,上下收起. 面板API设计: /** *args={ content: null,//url地址 dataTy

轻量级jquery框架之--树(tree)

前言 在常用的UI组件中,树形组件与数据列表组件可以说是构成一个管理平台基本的两大数据核心组件.树形组件用于系统菜单,数据列表用于数据表现,两者配合即可完成一个简单的数据系统.要实现一个支持复选.工具栏定义的无限级树形组件需要对树的递归创建.树的复选递归有很好的把握,特别是树形在复选情况下的表现样式,这也是难点所在. 树组件需求 (1)支持无限级加载树(支持懒加载方式) (2)支持复选操作,和预定义的复选情况 (3)支持简单树形样式和可自定义叶子点的图片的复杂样式 (4)支持定义工具栏(依赖于t

轻量级jquery框架之--工具栏(toolbar)

工具栏需求: (1)要求工具栏可以通过JSON配置格式生成,这样可以从服务器端控制生成的JSON来控制UI层面的按钮状态 (2)可以自定义按钮的图标样式. (3)可以定义按钮事件,按钮事件需要支持以字符串形式定义(服务端对应的按钮JSON配置里的事件配置为字符串形式) (4)支持工具栏全局事件,即点击任意按钮都触发的事件 (5)支持编程方式禁用.启用.添加.删除按钮 (6)支持配置额外的事件参数,考虑参数中附带权限标志 (7)工具栏需要考虑可以简单集成到tree组件.datagrid等可能需要用

jQuery Easy UI (适应屏幕分辨率大小)布局(Layout)

一.jQuery Easy UI (适应屏幕分辨率大小)布局(Layout) 1.首先应用的是jquery-easyui-1.4 版本(版本不同,兼容性不同) 2.实现整个页面的布局( layout: north,south,west,east, center) 3.首先整个页面布局适应屏幕的分辨率大小 4.然后内容区域进行布局,也要适应屏幕分辨率大小 5.部分代码: 1 <body> 2 <div class="easyui-layout" fit="tr

jQuery Mobile的布局插件和示例

[转自网络] 现在已经进入了移动互联网时代,因此将你的网站迁移到移动设备上就显得比较重要的.问题是,如何在移动设备的小屏幕中呈现你的网站中的所有内容呢? 本文介绍13款基于jQuery Mobile的布局插件和示例,可以帮助你创建多视图或者分割视图布局的移动web页面,并会根据移动设备的方向和屏幕大小来动态调整所显示的内容. 1.  Three Column iPad Layout 三列分割视图布局效果,为手机和平板电脑上的移动网页布局提供了一个良好的平台. 源码/ 演示 2.  JQM Mul

c# 轻量级ORM框架 实现(一)

发布一个自己写的一个轻量级ORM框架,本框架设计期初基于三层架构.所以从命名上来看,了解三层的朋友会很好理解. 设计该框架的目的:不想重复的写增删改查,把精力放到功能实现上. 发布改框架的原因:希望给初学者一个参考,希望能给予好的建议,给自己一个展示机会. 在我开始之前,先说明一下,我对"软件工程学"概念东西几乎不通,最高文化程度:初二,所以不喜勿喷. 开始我的orm设计最底层 最底层的是一个DalBase,它是一个抽象的,实现了增删改查的基本操作. 它既然是一个抽象的,那么它的内部就

如何编写轻量级 CSS 框架

Github 地址: https://github.com/nzbin/snack Demo 演示: https://nzbin.github.io/snack/ 前言 这篇文章我已经酝酿了半年之久,或者说拖沓了这么久吧.想说的东西很多,却又无从说起.如今轻量级框架如雨后春笋,层出不穷.我想每个人都应该归纳总结工作中的常见需求,编写一套适合自己的 CSS 框架.在之前的文章中,我提到了面向对象的 CSS(比如 BEM.OOCSS.SMACSS,详见 http://vanseodesign.com

c# 轻量级ORM框架 之 WhereHelper (二)

上篇文章发布了一些设计orm框架基层的和实现,有朋友提出WhereHelper是亮点,能被认可我表示高兴. 我就把WhereHelper设计思想和代码公开下. WhereHelper 的概念就是再拼接where 条件,为了能兼容各种数据库和参数化查询,故封装了该对象. 首先根据我的框架结构: 1.Common库 这里主要定义了,所有层都访问的类型及常用方法,因为是介绍WhereHelper的实现,对其它就不做详细解释了. WhereHelper定义到这一层是想着UI会用到该查询,故把该类型的定义

如何提高码农产量--mvc+jquery框架形成之旅(总体介绍)

一转眼务农6年了,呆过大公司也去过小作坊,码农的人生除了抠腚还是抠腚.在所有呆过的公司里,感觉项目没有不延期的,真的是因为自己不努力吗?也没有呀!上班不怎么聊QQ回家也很少看动作片,还搞过几次通宵撸码的. 以前总感觉是项目经理把工时估少了,后来自己也做过项目管理,按照以往的经历估工时,做到最后还是会有些延期,要不就是加班拼命赶.我发现在项目中总是会遇到一些这样那样的问题,比如:客户需求变了,基础数据导入耗时太长,开发人员水平不高,以往的项目没作积累,每次都是从头开发... ... 感觉在开发过程