Skip to content

Layout(布局)

使用$.fn.iLayout.defaults重写默认值对象。

布局容器有5个区域:北、南、东、西和中间。中间区域面板是必须的,边缘的面板都是可选的。每个边缘区域面板都可以通过拖拽其边框改变大小,也可以点击折叠按钮将面板折叠起来。布局可以进行嵌套,用户可以通过组合布局构建复杂的布局结构。

依赖关系

用法

1. 通过标签创建布局

<div/>标签增加data-toggle="topjui-layout"

html
<div id="cc" data-toggle="topjui-layout" style="width:600px;height:400px;">
  <div data-options="region:'north',title:'North Title',split:true" style="height:100px;"></div>
  <div data-options="region:'south',title:'South Title',split:true" style="height:100px;"></div>
  <div data-options="region:'east',iconCls:'icon-reload',title:'East',split:true" style="width:100px;"></div>
  <div data-options="region:'west',title:'West',split:true" style="width:100px;"></div>
  <div data-options="region:'center',title:'center title'" style="padding:5px;background:#eee;"></div>
</div>

2. 使用完整页面创建布局

html
<div data-options="region:'north',title:'North Title',split:true" style="height:100px;"></div>
<div data-options="region:'south',title:'South Title',split:true" style="height:100px;"></div>
<div data-options="region:'east',iconCls:'icon-reload',title:'East',split:true" style="width:100px;"></div>
<div data-options="region:'west',title:'West',split:true" style="width:100px;"></div>
<div data-options="region:'center',title:'center title'" style="padding:5px;background:#eee;"></div>

3. 创建嵌套布局

注意:嵌套在内部的布局面板的左侧(西面)面板是折叠的。

html
<div data-options="region:'north'" style="height:100px"></div>
<div data-options="region:'center'">
  <div data-toggle="topjui-layout" data-options="fit:true">
    <div data-options="region:'west',collapsed:true" style="width:180px"></div>
    <div data-options="region:'center'"></div>
  </div>
</div>

4. 通过ajax读取内容

布局是以面板为基础创建的。所有的布局面板都支持异步加载URL内容。使用异步加载技术,用户可以使自己的布局页面显示的内容更多更快。

html
<div data-options="region:'west',href:'west_content.php'" style="width:180px"></div>
<div data-options="region:'center',href:'center_content.php'"></div>

折叠布局面板

javascript
$('#cc').iLayout();
$('#cc').iLayout('collapse','west');

添加西侧区域面板和工具菜单按钮

javascript
$('#cc').iLayout('add',{
  region: 'west',
  width: 180,
  title: 'West Title',
  split: true,
  tools: [{
    iconCls:'icon-add',
    handler:function(){alert('add')}
  },{
    iconCls:'icon-remove',
    handler:function(){alert('remove')}
  }]
});

属性

属性名属性值类型描述默认值
fitboolean如果设置为true,布局组件将自适应父容器。当使用'body'标签创建布局的时候,整个页面会自动最大。false

事件

事件名事件参数描述
onCollapseregion在折叠区域面板的时候触发。
onExpandregion在展开区域面板的时候触发。
onAddregion在新增区域面板的时候触发。
onRemoveregion在移除区域面板的时候触发。

区域面板属性

区域面板属性定义与panel组件类似,下面的是公共的和新增的属性:

属性名属性值类型描述默认值
titlestring布局面板标题文本。null
regionstring定义布局面板位置,可用的值有:north, south, east, west, center。
borderboolean为true时显示布局面板边框。true
splitboolean为true时用户可以通过分割栏改变面板大小。false
iconClsstring一个包含图标的CSS类ID,该图标将会显示到面板标题上。null
hrefstring用于读取远程站点数据的URL链接null
collapsibleboolean定义是否显示折叠按钮。true
minWidthnumber最小面板宽度。10
minHeightnumber最小面板高度。10
maxWidthnumber最大面板宽度。10000
maxHeightnumber最大面板高度。10000
expandModestring在点击折叠面板时候的扩展模式。可用值有:"float"、"dock"和null float:区域面板将展开并浮动在顶部,在鼠标焦点离开面板时会自动隐藏。 dock:区域面板将展开并钉在面板上,在鼠标焦点离开面板时不会自动隐藏。 null:什么也不会发生。float
collapsedSizenumber折叠后的面板大小。28
hideExpandToolboolean为true时隐藏折叠面板上的扩展面板工具。false
hideCollapsedContentboolean为true时隐藏折叠面板上的标题栏。true
collapsedContentstring,function(title)定义在折叠面板上要显示标题内容。 1. 标题字符串; 2. 通过函数返回标题内容。见下方代码示例。

属性代码示例

collapsedContent属性示例:

javascript
collapsedContent: function(title){
  var region = $(this).iPanel('options').region;
  if (region == 'north' || region == 'south'){
    return title;
  } else {
    return ' <div class="mytitle">'+title+'</div> ';
  }
}

方法

方法名方法参数描述
resizeparam设置布局大小。param对象包含如下属性: width:布局宽度。 height:布局高度。见下方代码示例。
panelregion返回指定面板,'region'参数可用值有:'north','south','east','west','center'。
collapseregion折叠指定面板。'region'参数可用值有:'north','south','east','west'。
expandregion展开指定面板。'region'参数可用值有:'north','south','east','west'。
addoptions添加指定面板。属性参数是一个配置对象,更多细节请查看选项卡面板属性。
removeregion移除指定面板。'region'参数可用值有:'north','south','east','west'。
splitregion分割区域面板。'region'参数可用值有:'north','south','east','west'。见下方代码示例。
unsplitregion移除指定面板。'region'参数可用值有:'north','south','east','west'。见下方代码示例。

方法代码示例

resize方法示例:

javascript
$('#cc').iLayout('resize', {
  width:'80%',
  height:300
})

split方法示例:

javascript
$("#layout").iLayout("split", "west");

unsplit方法示例:

javascript
$("#layout").iLayout("unsplit", "west");

基于最新稳定版jQuery EasyUI构建的前端框架