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 相关文章推荐
些很实用且必用的小脚本代码
Jun 26 Javascript
关于Javascript 的 prototype问题。
Jan 03 Javascript
使用JSON.parse将json字符串转换成json对象的时候会出错
Sep 04 Javascript
JQuery select(下拉框)操作方法汇总
Apr 15 Javascript
再JavaScript的jQuery库中编写动画效果的指南
Aug 13 Javascript
基于BootStarp的Dailog
Apr 28 Javascript
微信小程序使用第三方库Immutable.js实例详解
Sep 27 Javascript
过期软件破解办法实例详解
Jan 04 Javascript
微信小程序图片横向左右滑动案例
May 19 Javascript
脚手架vue-cli工程webpack的基本用法详解
Sep 29 Javascript
在 Vue.js中优雅地使用全局事件的方法
Feb 01 Javascript
element中el-container容器与div布局区分详解
May 13 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
Mysql中分页查询的两个解决方法比较
2013/05/02 PHP
php中使用sftp教程
2015/03/30 PHP
判断、添加和删除WordPress置顶文章的相关PHP函数小结
2015/12/10 PHP
JS(jQuery)实现聊天接收到消息语言自动提醒功能详解【提示“您有新的消息请注意查收”】
2019/04/16 PHP
JS获取IUSR_机器名和IWAM_机器名帐号的密码
2006/12/06 Javascript
jquery.simple.tree插件 更简单,兼容性更好的无限树插件
2010/09/03 Javascript
关于jQuery $.isNumeric vs. $.isNaN vs. isNaN
2013/04/15 Javascript
js+ajax实现获取文件大小的方法
2015/12/08 Javascript
js实现仿qq消息的弹出窗效果
2016/01/06 Javascript
实例讲解js验证表单项是否为空的方法
2016/01/09 Javascript
JavaScript判断图片是否已经加载完毕的方法汇总
2016/02/05 Javascript
详解win7 cmd执行vue不是内部命令的解决方法
2017/07/27 Javascript
vue-cli3配置与跨域处理方法
2019/08/17 Javascript
js对象简介与基本用法示例
2020/03/13 Javascript
Openlayers实现点闪烁扩散效果
2020/09/24 Javascript
node.js爬虫框架node-crawler初体验
2020/10/29 Javascript
[02:06]DOTA2英雄基础教程 暗影萨满
2013/12/16 DOTA
[36:33]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第二场 11.29
2020/12/02 DOTA
Python发送以整个文件夹的内容为附件的邮件的教程
2015/05/06 Python
解决pycharm无法调用pip安装的包问题
2018/05/18 Python
自学python的建议和周期预算
2019/01/30 Python
python tools实现视频的每一帧提取并保存
2020/03/20 Python
用python做游戏的细节详解
2019/06/25 Python
解决python gdal投影坐标系转换的问题
2020/01/17 Python
Python中remove漏删和索引越界问题的解决
2020/03/18 Python
将python字符串转化成长表达式的函数eval实例
2020/05/11 Python
浅谈pytorch中torch.max和F.softmax函数的维度解释
2020/06/28 Python
html5本地存储_动力节点Java学院整理
2017/07/12 HTML / CSS
英国DIY汽车维修配件网站:DIY Car Service Parts
2019/08/30 全球购物
PHP如何对用户密码进行加密
2014/07/31 面试题
三严三实对照检查材料
2014/09/22 职场文书
违纪学生保证书
2015/02/27 职场文书
2016年大学光棍节活动总结
2016/04/05 职场文书
go 原生http web 服务跨域restful api的写法介绍
2021/04/27 Golang
golang的文件创建及读写操作
2022/04/14 Golang
Python使用pandas导入xlsx格式的excel文件内容操作代码
2022/12/24 Python