好久没看过EXT了,最近项目中需要用到就重新复习了下,对于一些知识也都模糊不清,现对Extjs中的layout布局进行总结下:
layout中有absolute,anchor,border,accordion,card,form,table,column,fit这几种,现一一举例:
1.absolute根据字面意思就知道,是根据具体坐标进行定位的,固不写相应的代码了,其他的如下
2.anchor:其值可以使百分比和数值,数值一般为负数,其代表的意思是如果宽度和长度中有一个设定值了,则anchor代表的是未设置的那个,如果两者都没有设定具体值,则如果需要使用anchor则需要anchro:'ww,hh'
Ext.onReady(function() {
Ext.create('Ext.Window',{
title:'Anchor layout',
width:400,
height:400,
layout:'anchor',
plain: true,
items:[
Ext.create('Ext.panel.Panel',{
title:'panel1',
height:100,
anchor:'-50',
html:'高度等于100,宽度= 容器宽度-50'
}),
Ext.create('Ext.panel.Panel',{
title:'panel2',
height:100,
anchor:'50%',
html:'高度等于100,宽度=容器的宽度*50%'
}),
Ext.create('Ext.panel.Panel',{
title:'panel3',
anchor:'-10,-200',
html:'高度等于容器高度-10,宽度等于容器宽度-200'
})
]
}).show();
});
3.border:将容器分为五个区域:east,south,west,north,center
Ext.onReady(function(){
var tab = Ext.create('Ext.tab.Panel',{
region:'center',//border布局,将页面分成东,南,西,北,中五部分,这里表示TabPanel放在中间
margins:'3,3,3,0',
activeTab:0,
defaults:{
autoScroll:true
},
items:[{
title:'tab1',
html:'第一个tab内容'
},{
title:'tab2',
html:'第二个tab内容'
},{
title:'tab3',
html:'第三个tab内容'
}]
})
var nav = Ext.create('Ext.panel.Panel',{
title:'navigation',
region:'west',
split:true,
width:200,
collapsible:true,//允许伸缩
margins:'3,0,3,3',
cmargins:'3,3,3,'
});
Ext.create('Ext.Window',{
title:'Layout Window',
width:600,
height:350,
closable:true,
border:false,
plain:true,
layout:'border',
closeAction:'hide',
items:[nav,tab]
}).show();
)};
4.accordion:这个风格是手风琴式的,效果是如果 有多个item,则点击其中一个,则展开,其他的则收缩。
Ext.OnReady(function(){
Ext.create('Ext.panel.Panel',{
title:'容器组件',
layout:'accordion',
width:600,
height:200,
layoutConfig:{animate:false},
items:[{
title:'元素1',html:''
},{
title:'元素2',html:''
},{
title:'元素3',html:''
},{
title:'元素4',html:''
}]
});
});
5.card:像安装向导一样,一张一张显示
Ext.onReady(function(){
var navigate = function(panel,direction){
var layout = panel.getLayout();
layout[direction]();
Ext.getCmp('move-prev').setDisabled(!layout.getPrev());
Ext.getCmp('move-next').setDisabled(!layout.getNext());
};
Ext.create('Ext.panel.Panel',{
title:'Example Wizard',
height:500,
width:400,
layout: 'card',
activeItem:0,
bodyStyle:'padding:15px',
animCollapse:true,
renderTo:Ext.getBody(),
defaults:{
// applied to each contained panel
border: false
},
bbar:[{
id:'move-prev',
text:'back',
handler:function(btn){
navigate(btn.up("panel"),"prev");
},
disabled:true
},'->',{
id:'move-next',
text:"next",
handler:function(btn){
navigate(btn.up("panel"),"next");
}
}],
items:[{
id:'card-0',
html:'<h1>Welcome to the Wizard!</h1>'
},{
id:'card-1',
html:'<p>step 2 of 3 </p>'
},{
id:'card-2',
html:'<h1>Congratulations!</h1><p>Step 3 of 3-complete</p>'
}]
});
});
6.form:是一种专门用于管理表单中输入字段的布局
Ext.onReady(function() {
var win = Ext.create('Ext.Window',{
title: "form Layout",
height: 150,
width: 230,
plain: true,
bodyStyle: 'padding:15px',
items:
{
xtype: "form",
labelWidth: 30,
defaultType: "textfield",
frame:true,
items:
[
{
fieldLabel:"姓名",
name:"username",
allowBlank:false
},
{
fieldLabel:"呢称",
name:"nickname"
},
{
fieldLabel: "生日",
xtype:'datefield',
name: "birthday",
width:127
}
]
}
});
win.show();
});
7.table:按照普通表格的方法布局子元素,用layoutConfig:{columns:3},//将父容器分成3列
Ext.onReady(function(){
Ext.create('Ext.panel.Panel',
{
renderTo:Ext.getBody(),
title:'容器组件',
layout:'table',
width:500,
height:200,
layoutConfig:{columns:3},//将父容器分成3列
items:[
{title:'元素1',html:'ssssssssss',rowspan:2,height:100},
{title:'元素2',html:'dfffsddsdfsdf',colspan:2},
{title:'元素3',html:'sdfsdfsdf'},
{title:'元素4',html:''}
]
}
);
});
8.column:把整个容器看成一列,然后向容器放入子元素时
Ext.onReady(function() {
var win = Ext.create('Ext.Window',{
title: "Column Layout",
height: 300,
width: 400,
plain: true,
layout: 'column',
items: [{
title:"width=50%",
columnWidth:0.5,
html:"width=(容器宽度-容器内其它组件固定宽度)*50%",
height:200
},
{
title:"width=250px",
width: 200,
height:100,
html:"固定宽度为250px"
}
]
});
win.show();
});
9.fit:填充整个容器(如果多个子元素则只有一个元素充满整个容器)
Ext.OnReady(function(){
Ext.create(Ext.create(Ext.panel.Panel',
{
renderTo:'paneldiv',
title:'容器组件',
layout:'fit',
width:500,
height:100,
items:[
{title:'子元素1'},
{title:'子元素2'},
{title:'子元素3'},
{title:'子元素4'},
{title:'子元素5'}
]
}
);
});
分享到:
相关推荐
ExtJs常用布局--layout详解实例代码: ExtJs常见的布局方式有:border、form、absolute、column、accordion、table、fit、card、anchor ...具体使用方法可见该文件的案例代码。 该文件含ext3.2.0压缩版,可直接运行哦!
### ExtJS中文手册知识点概览 #### 1. EXT简介 - **背景介绍**:ExtJS是一款...通过以上内容的详细介绍,我们不仅能够了解到ExtJS的基本用法,还能够深入掌握其高级特性,从而更加高效地利用ExtJS进行Web应用的开发。
2. **布局管理**:布局管理器(Layout Manager)负责管理组件容器中的子组件的大小和位置。常见的布局有Fit布局、Border布局、Table布局和Form布局等。 3. **数据绑定**:ExtJS的数据绑定功能允许开发者将UI组件与...
为了展示如何使用ExtJS处理表单提交,可以参考下面的例子: ```javascript { Form: "myform", url: 'person.jsp', params: { id: '01' }, method: 'post', timeout: 3000, success: function(response, ...
### ExtJs部署及使用方法详解 #### 一、ExtJs部署与配置 ##### 1.1 ExtJs库的安装 为了正确地安装ExtJs库,首先需要将ExtJs的源码包放置到项目的WebRoot目录下,即项目的根目录。在安装过程中,需要创建以下...
在EXTJS这个强大的JavaScript框架中,虽然原生并未直接提供多选列表(Multi Select List)组件,但开发者可以通过...在开发过程中,记得查阅EXTJS的官方文档,了解更多的配置选项和方法,以便更好地满足项目需求。
1. **快速入门**:这部分通常会介绍如何在项目中引入ExtJS库,创建基本的页面结构,以及如何使用其核心组件,如面板(Panel)、窗口(Window)和布局(Layout)。 2. **组件库**:ExtJS 3.0包含了大量的UI组件,如...
总结来说,`Ext.Panel`和`TreePanel`在EXTJS中是两个关键的组件,它们支持动态加载本地数据,提高了用户体验。理解这两个组件的工作原理和如何利用`Store`、`Ajax`、`TreeStore`进行数据加载,是EXTJS开发中的重要...
在ExtJS中,我们可以使用`Ext.container.Container`类来创建一个容器,然后设置布局为`form`,以便容纳表单字段。例如: ```javascript var formPanel = Ext.create('Ext.form.Panel', { layout: 'form', items...
ExtJS是一个广泛使用的JavaScript库,特别适用于构建富客户端应用程序。3.0版本是该库的一个重要里程碑,提供了许多功能和改进。这篇文档将详细介绍ExtJS 3.0的中文API,帮助开发者更好地理解和使用这个框架。 一、...
在ExtJS 3.2版本中,该库提供了丰富的组件和布局管理,包括但不限于以下核心概念: 1. **组件(Components)**: ExtJS的核心是其组件模型,允许开发者创建复杂的UI元素,如表格、表单、树形视图、面板、窗口等。...
在ExtJS中,视图通常通过布局(layout)来组织这些组件,并通过绑定(binding)将模型的数据展示出来。当模型数据发生变化时,视图会自动更新,反之亦然。 3. **控制器(Controller)**:控制器作为模型和视图之间...
在ExtJS中,`Ext.onReady`和`Ext.application`是两个非常重要的方法。`Ext.onReady`在DOM加载完成后执行,确保所有元素都可供脚本引用。例如,你可以尝试在`Ext.onReady`回调中添加一个`alert`语句: ```javascript...
在ExtJs中,布局管理器(Layout Manager)负责处理组件容器内的空间分配和排列方式,例如:Fit布局、Table布局、Anchor布局、Form布局等。这使得开发者可以轻松地创建适应不同屏幕尺寸和数据量的界面。 3. **表格...
在ExtJS中,`Ext.onReady`和`Ext.application`是两个非常重要的方法。`Ext.onReady`会在DOM完全加载后自动执行,确保所有元素都可被脚本引用。你可以尝试在`Ext.onReady`函数内添加代码,例如弹出一个对话框,以观察...
本节通过一个简单的“Hello World”示例来介绍 Extjs4 的基本用法。 1. **创建 `helloworld.js` 文件:** ```javascript Ext.application({ name: 'HelloExt', launch: function () { Ext.create('Ext....
### ExtJS 3.2 的中文参考手册知识点详解 #### 1. **EXT简介** - **定位**: 作为一款强大的...以上内容是对ExtJS 3.2中文参考手册的关键知识点进行了详细的解析和总结,希望能对学习ExtJS的开发者有所帮助。
Extjs 提供了两种常用的方法来启动应用程序:`Ext.onReady` 和 `Ext.application`。 - **Ext.onReady**:此方法确保 DOM 加载完成后再执行指定函数。例如: ```javascript Ext.onReady(function() { alert('...
标题"EXTJS小例子"可能是指一个包含EXTJS基本使用示例的项目,帮助初学者理解EXTJS的工作原理和基本用法。这个项目可能包含了一些简单的EXTJS代码片段,演示了如何创建和配置EXTJS组件,以及如何组织和布局页面。 ...