官网的例子太强大了:http://www.sencha.com/products/extjs/examples/
常用界面都有例子,方便学习使用啊
这一节主要学习布局
学习地址:http://docs.sencha.com/extjs/4.2.0/extjs-build/examples/layout-browser/layout-browser.html
一、absolute
绝对定位
Ext.onReady(function() {//页面初始化代码
var panel = new Ext.Panel({
text : "展示",
renderTo : document.body,
width : 400,
height : 300,
layout : 'absolute',
items : [ {
title : 'Panel 1',
width : 200,
height : 100,
x : 50,
y : 50,
html : 'Positioned at x:50, y:50'
}, {
title : 'Panel 2',
width : 250,
height : 100,
x : 100,
y : 100,
html : 'Positioned at x:125, y:125'
} ]
});
})
注:
layout : 'absolute',指明布局方式
x : 50,y : 50,指明离X方向,y方向的绝对距离
二、accordion
折叠式面板,默认打开第一个(我首先想到了一些购物网站左侧菜单栏是不是可以用这个实现呢?留待以后尝试)
var panel = new Ext.Panel({
layout: 'accordion',
renderTo : document.body,
width : 200,
height : 200,
items:[{
title: 'Panel 1',
html: 'Content'
},{
title: 'Panel 2',
id: 'panel2',
html: 'Content2'
}]
});
三、anchor
绝对定位
var panel = new Ext.Panel({
renderTo : document.body,
width : 300,
height :400,
layout: 'anchor',
items: [{
title: 'Panel 1',
height: 100,
anchor: '50%',
html: 'Panel 1 50%'
},{
title: 'Panel 2',
height: 100,
anchor: '-100',
html: 'Panel 2 -100'
},{
title: 'Panel 3',
anchor: '-10, -262',
html: 'Panel 3 -10, -262'
}]
});
四、border
边框式
var panel = new Ext.Panel({
renderTo : document.body,
width : 500,
height :400,
layout: 'border',
bodyBorder: false,
defaults: {
collapsible: true,
split: true,
bodyPadding: 15
},
items: [{
title: 'top',
region: 'north',
height: 50,
minHeight: 25,
maxHeight: 50,
margins: '5 0 0 5',//上 右 下 左
html:"top content"
},{
title: 'Footer',
region: 'south',
height: 50,
minHeight:25,
maxHeight:50,
margins: '0 0 5 0',//上 右 下 左
html:"Footer content"
},{
title: 'Navigation',
region:'west',
floatable: false,
margins: '5 0 0 0',
width: 100,
minWidth: 50,
maxWidth: 100,
html: "Secondary content like navigation links could go here"
},{
title: 'Main Content',
collapsible: false,
region: 'center',
margins: '5 0 0 0',
html: "Main Page This is where the main content would go"
},{
title: 'right',
region: 'east',
width: 100,
margins: '5 0 0 0',
html:"right content"
}]
});
五、TabPanel
var panel = new Ext.TabPanel({
renderTo : document.body,
width : 200,
height :200,
bodyBorder: true,
activeTab: 0, // index or id
items:[{
title: 'Tab 1',
html: 'This is tab 1 content.'
},{
title: 'Tab 2',
html: 'This is tab 2 content.'
},{
title: 'Tab 3',
html: 'This is tab 3 content.'
}]
});
六、Card (Wizard)
自定义向导风格
var panel = new Ext.Panel({
renderTo : document.body,
width : 300,
height :300,
bodyBorder: true,
bodyStyle: 'padding:15px',
layout:'card',
activeItem: 0, // index or id
bbar: ['->', {
id: 'card-prev',
text: '« Previous',
handler: function(btn) {
},
disabled: true
},{
id: 'card-next',
text: 'Next »',
handler: function(btn) {
}
}],
items: [{
id: 'card-0',
html: 'Step 1'
},{
id: 'card-1',
html: 'Step 2'
},{
id: 'card-2',
html: 'Step 3'
}]
});
注:事件还未学习,按钮点击未实现,待解决
七、column
var panel = new Ext.Panel({
renderTo : document.body,
width : 400,
height : 200,
bodyBorder : true,
bodyStyle : 'padding:15px',
layout : 'column',
items : [ {
title : 'Width = 25%',
columnWidth : .25,
items : [ {
xtype : "button",
text : "Content"
}, {
xtype : "button",
text : "Content"
} ]
}, {
title : 'Width = 75%',
columnWidth : .75,
html : 'Content'
}, {
title : 'Width = 100px',
width : 100,
html : 'Content'
} ]
});
八、Fit
var panel = new Ext.Panel(
{
renderTo : document.body,
width : 400,
height : 200,
bodyBorder : true,
bodyStyle : 'padding:5px',
layout : 'fit',
items : [ {
title : 'Fit Panel',
html : 'A very simple layout that simply\b fills the container with a single panel.\b This is usually the best default layout\b choice when you have no other specific \b layout requirements.',
border : true
} ]
});
九、table
var panel = new Ext.Panel({
renderTo : document.body,
width : 400,
height : 200,
bodyBorder : true,
bodyStyle : 'padding:5px',
layout : {
type : 'table',
// The total column count must be specified here
columns : 3
},
defaults : {
// applied to each contained panel
bodyStyle : 'padding:20px'
},
items : [ {
html : 'Cell A content',
rowspan : 2
}, {
html : 'Cell B content',
colspan : 2
}, {
html : 'Cell C content',
cellCls : 'highlight'
}, {
html : 'Cell D content'
} ]
});
十、vbox
var panel = new Ext.Panel({
renderTo : document.body,
width : 400,
height : 200,
bodyBorder : true,
bodyStyle : 'padding:5px',
title: "VBoxLayout Panel",
layout: {
type: 'vbox',
align: 'center'
},
items: [{
xtype: 'panel',
title: 'Inner Panel One',
width: 250,
flex: 2//每个子项相对的 flex值都会与全体子项 flex累加的值相比较,根据此结果,处理每个子项的 flex 最后是多少。若不设置,表示不对子项作自适应尺寸的处理
},{
xtype: 'panel',
title: 'Inner Panel Two',
width: 250,
flex: 4
},{
xtype: 'panel',
title: 'Inner Panel Three',
width: '50%',
flex: 4
}]
});
十一、hbox
var panel = new Ext.Panel({
renderTo : document.body,
width : 400,
height : 200,
bodyBorder : true,
bodyStyle : 'padding:5px',
title: "HBoxLayout Panel",
layout: {
type: 'hbox',
align: 'stretch'
},
renderTo: document.body,
items: [{
xtype: 'panel',
title: 'Inner Panel One',
flex: 2
},{
xtype: 'panel',
title: 'Inner Panel Two',
flex: 1
},{
xtype: 'panel',
title: 'Inner Panel Three',
flex: 1
}]
});