ExtJs布局管理

所有ExtJs的Layout Class都在API Documentation->Ext->Layout下,如果想用哪种而已方式可以直接查询API帮助文档.我写这篇文章的意思是把学习的时候做的笔记保留下了,为了以后使用方便.

下面列出的是一些常用的Layout.

layout.html页面代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>ExtJs Layout Example</title>
<link rel="stylesheet" type="text/css" href="../ext-3.2.0/resources/css/ext-all.css"></link>
<script type="text/javascript" src="../ext-3.2.0/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="../ext-3.2.0/ext-all.js"></script>
<script type="text/javascript" src="../js/layout.js"></script>
</head>
<body>
    <div id="columnId"></div>
    <div id="borderId"></div>
    <div id="fitId"></div>
    <div id="accordionId"></div>
    <div id="anchorId"></div>
</body>
</html>

以下的代码都是放在..js/layout.js文件中的.

1.columnLayout

/*
    创建column布局
*/
function createColumnPanel(){
    var obj = {
        title : '父面板',
        width : 600,
        height : 400,
        layout : 'column',//一列一列的显示容器中的元素
        items : [{
            xtype : 'panel',//子元素中默认的显示类型为:panel.也可以根据需要换成button等.
            title : '页面1',
            columnWidth : 0.5,//以面板整体宽度大小的25%大小进行填充.
            height : 200,//高度为固定值.
            layout : 'column',
            items : [{
                xtype : 'button',
                text : '按钮1',
                columnWidth : 0.5
            },{
                xtype : 'button',
                text : '按钮2',
                columnWidth : 0.5
            }],
            html : '我是面板1'
        },{
            title : '页面2',
            columnWidth : 0.5,
            height : 50,
            html : '我是面板2'
        }]
    } ;
    //实例化父面板
    var mainPanel = new Ext.Panel(obj) ;
    //将父面板添加到id为columnId的标签上.
    mainPanel.render("columnId") ;
}

2.borderLayout

/*
    创建border布局
*/
function createBorderPanel(){
    var obj = {
        title : '父面板',
        width : 600,
        height : 400,
        layout : 'border',//以东南西北中的方式显示容器中的元素
        items : [{
            title: 'North Region',
            region: 'north',     // 上
            height : 50
        },{
            title: 'South Region',
            region: 'south',     // 下
            height: 50
        },{
            title: 'West Region',
            region:'west',    // 左
            split: true,   //设置可以调整该panel的大小(宽度)
            collapsible: true,   //设置该面板是否可以收缩
            width: 50
        },{
            title: 'East Region',
            region: 'east',     // 右
            width : 50
        },{
            title: 'Center Region',
            region: 'center',     // 中,此面板必须存在.
            layout: 'border', 
            items: [{
                title: 'west',
                region: 'west',
                width: '50%'
            },{
                title: 'center',
                region: 'center',
            }]
        }]
    } ;
    //实例化父面板
    var mainPanel = new Ext.Panel(obj) ;
    //将父面板添加到id为borderId的标签上.
    mainPanel.render("borderId") ;
}

 3.fitLayout

/*
    创建fit布局
*/
function createFitPanel(){
    var obj = {
        title : '父面板',
        width : 600,
        height : 400,
        layout : 'fit',//填满整个外部容器,只能看到一个子元素
        items : [{
            title : '页面1',
            html : '我是面板1'
        },{
            title : '页面2',
            html : '我是面板2'
        }]
    } ;
    //实例化父面板
    var mainPanel = new Ext.Panel(obj) ;
    //将父面板添加到id为columnId的标签上.
    mainPanel.render("fitId") ;
}

4.accordionLayout

/*
    创建accordion布局
*/
function createAccordionPanel(){
    var obj = {
        title : '父面板',
        width : 600,
        height : 400,
        layout : 'accordion',//制作应用程度菜单式样式.
        items : [{
            title : '菜单1',
            items : [{
                xtype : 'panel',
                title : 'a',
            }]
        },{
            title : '菜单2',
            items : [{
                xtype : 'panel',
                title : 'a',
            },{
                xtype : 'panel',
                title : 'b',
            }]
        }]
    } ;
    //实例化父面板
    var mainPanel = new Ext.Panel(obj) ;
    //将父面板添加到id为columnId的标签上.
    mainPanel.render("accordionId") ;
}

5.anchorLayout

/*
    创建anchor布局
*/
function createAnchorPanel(){
    var obj = {
        title : '父面板',
        width : 600,
        height : 400,
        layout : 'anchor',// 好处1:可以让子元素的大小根据父元素的大小确定.
        items : [{
            title : '菜单1',
            anchor : '50% 30%'  //利用achor方式布局子元素.
            },{
            title : 'b',
            width : 50,
            height : 50
        }]
    } ;
    //实例化父面板
    var mainPanel = new Ext.Panel(obj) ;
    //将父面板添加到id为columnId的标签上.
    mainPanel.render("anchorId") ;
}

 

Ext.onReady方法如下:

/*
    页面成功载入后会第一个调用此方法
*/
Ext.onReady(function(){
    createColumnPanel() ;//创建column布局
    document.getElementById("columnId").style.display = 'none' ;//隐藏column布局
    createBorderPanel() ;//创建border布局
    document.getElementById("borderId").style.display = 'none' ;//隐藏border布局
    createFitPanel() ;//创建fit布局
    document.getElementById("fitId").style.display = 'none' ;//隐藏fitId布局
    createAccordionPanel() ;//创建accordion布局
    document.getElementById("accordionId").style.display = 'none' ;//隐藏accordion布局
    createAnchorPanel() ;//创建anchor布局
}) ;
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(JavaScript,layout,ExtJs,ExtJs布局管理)