jQuery布局插件UI Layout简介及使用方法


Posted in Javascript onApril 03, 2013

UI Layout是一种基于jQuery的布局框架,项目主页http://layout.jquery-dev.net/。该框架的参考原型是ExtJS的border-layout,因此十分适用于将原有使用ExtJS的项目改造成jQuery项目。其核心是一个大小自适应的中心面板(必选),面板的上下左右四个方向可以放置可折叠、可缩放的面板(可选),各个面板可以添加任意数量的页眉和页脚面板。UI Layout支持内层布局的嵌套,任意块元素都可以当作布局的容器,最基本的布局容器是body。

基本使用方法:获取容器元素并调用layout方法,传入配置参数(可选)options即可:
$('body').layout( [options] );通常保留布局的引用,以便于进一步通过代码控制布局的形态。

var myLayout = $('body').layout(); 
// 读取布局配置选项 
var is_west_resizable = myLayout.options.west.resizable; 
var north_maxHeight = myLayout.options.north.maxSize; 
// 调用布局函数 
myLayout.toggle("north"); 
myLayout.sizePane("west", 300); 
// 调用布局工具 
myLayout.addPinBtn("#myPinButton", "west"); 
myLayout.allowOverflow("north");

所有面板基于现有的HTML元素,而面板的附属组件(缩放器和折叠开关)是自动生成的div元素,并且加上了对应的class属性。几乎所有的面板元素都必须是容器元素的直接子元素,form容器是一个例外。我们可以为相应的HTML元素赋予默认的类名,或者自定义的类名、id,来指定布局面板。下面举个直观的例子:
$(document).ready(function() { 
$("body").layout({ 
/* 
east & west panes require 'ID' selectors 
because they are 'nested inside a div' 
*/ 
west__paneSelector: "#west" 
, east__paneSelector: "#east" 
/* 
north & south panes are 'children of body' 
*/ 
, north__paneSelector: ".ui-layout-north"//默认配置,可省略 
, south__paneSelector: ".myclass-south" 
/* 
center pane is a 'child of the first form' 
default-selector shown just for reference 
*/ 
, center__paneSelector: ".ui-layout-center"//默认配置,可省略 
}); 
});

对应的页面:
<body> 
<!-- 'north' & 'south' are children of body --> 
<div class="ui-layout-north">north</div> 
<div class="myclass-south">south</div> 
<!-- 'center' is nested inside a form --> 
<form> 
<div class="ui-layout-center">center</div> 
</form> 
<!-- 'east' & 'west' are nested inside a div --> 
<div> 
<div id="west">west</div> 
<div id="east">east</div> 
</div> 
</body>

在本例中,布局容器是body,南、北面板是容器的直接子元素,南面板使用自定义类名“myclass-south”,需要在布局参数south__paneSelector中指定jQuery选择器;北面板使用默认类名“ui-layout-north”。东、西面板不是容器的直接子元素,需要指定id才能识别(不可以用类选择器),并且在布局参数“west__paneSelector”中指明对应的id。中心面板嵌套在form中,此时面板可以使用默认类名或自定义类名来识别。当一个面板满足下列两个条件时才可以使用自定义类选择器,否则只能用id选择器来识别:1、面板是form的直接子元素2、该form是容器的直接子元素,并且是容器中的第一个form。

面板之间的空隙构成了面板的边,边的概念是相对于上下左右方向的面板而言的,由于可以设置拖动面板的边实现对应面板的缩放,所以称这些边为“缩放器”;缩放器上面通常附加一个折叠开关负责面板的折叠与打开。当两个面板之间没有空隙时,缩放器和折叠开关随之消失。面板打开和折叠状态下,缩放器的宽度可以分别指定为不同的值。上例的效果图如下:
jQuery布局插件UI Layout简介及使用方法

Javascript 相关文章推荐
JS中如何设置readOnly的值
Dec 25 Javascript
JS删除字符串中重复字符方法
Mar 09 Javascript
JS获取图片高度宽度的方法分享
Apr 17 Javascript
js中日期的加减法
May 06 Javascript
javaScript数组迭代方法详解
Apr 14 Javascript
Javascript基于jQuery UI实现选中区域拖拽效果
Nov 25 Javascript
js实现拖拽功能
Mar 01 Javascript
js canvas实现擦除效果示例代码
Apr 26 Javascript
jstree单选功能的实现方法
Jun 07 Javascript
jQuery中将json数据显示到页面表格的方法
May 27 jQuery
基于vue-cli 路由 实现类似tab切换效果(vue 2.0)
May 08 Javascript
vue.js中ref及$refs的使用方法解析
Oct 08 Javascript
简单实例处理url特殊符号&amp;处理(2种方法)
Apr 02 #Javascript
JS获取浏览器版本及名称实现函数
Apr 02 #Javascript
js 火狐下取本地路径实现思路
Apr 02 #Javascript
input 输入框获得/失去焦点时隐藏/显示文字(jquery版)
Apr 02 #Javascript
JQuery给元素添加/删除节点比如select
Apr 02 #Javascript
Extjs4 消息框去掉关闭按钮(类似Ext.Msg.alert)
Apr 02 #Javascript
extjs关于treePanel+chekBox全部选中以及清空选中问题探讨
Apr 02 #Javascript
You might like
《Re:从零开始的异世界生活》剧情体验,手游新作定名
2020/04/09 日漫
php对二维数组进行排序的简单实例
2013/12/19 PHP
完美实现wordpress禁止文章修订和自动保存的方法
2014/11/03 PHP
在Mac OS上搭建PHP的Yii框架及相关测试环境
2016/02/14 PHP
ThinkPHP实现简单登陆功能
2017/04/28 PHP
js模拟实现Array的sort方法
2007/12/11 Javascript
S2SH整合JQuery+Ajax实现登录验证功能实现代码
2013/01/30 Javascript
jQuery中读取json文件示例代码
2013/05/10 Javascript
javascript实现可全选、反选及删除表格的方法
2015/05/15 Javascript
自定义刻度jQuery进度条及插件
2015/09/02 Javascript
canvas实现环形进度条效果
2017/03/23 Javascript
详解Vuex中mapState的具体用法
2017/09/28 Javascript
vue.js 添加 fastclick的支持方法
2018/08/28 Javascript
js自定义input文件上传样式
2018/10/26 Javascript
跨域请求两种方法 jsonp和cors的实现
2018/11/11 Javascript
原生JS实现动态添加新元素、删除元素方法
2019/05/05 Javascript
vue和H5 draggable实现拖拽并替换效果
2020/07/29 Javascript
详解JavaScript编程中的window与window.screen对象
2015/10/26 Python
python 生成器生成杨辉三角的方法(必看)
2017/04/10 Python
Python2.X/Python3.X中urllib库区别讲解
2017/12/19 Python
Flask 让jsonify返回的json串支持中文显示的方法
2018/03/26 Python
python调用opencv实现猫脸检测功能
2019/01/15 Python
pytorch中的卷积和池化计算方式详解
2020/01/03 Python
Python二元算术运算常用方法解析
2020/09/15 Python
通过实例解析python and和or使用方法
2020/11/14 Python
英国乐购杂货:Tesco Groceries
2018/11/29 全球购物
写好求职信第一句话的技巧
2013/10/26 职场文书
生日邀请函范文
2014/01/13 职场文书
西门豹教学反思
2014/02/04 职场文书
数控专业自荐书范文
2014/03/16 职场文书
2014年党支部承诺书
2014/05/30 职场文书
社区文艺活动方案
2014/08/19 职场文书
2014最新毕业证代领委托书
2014/09/26 职场文书
销售督导岗位职责
2015/04/10 职场文书
2016年校长新年寄语
2015/08/17 职场文书
Python 数据可视化之Bokeh详解
2021/11/02 Python