標準佈局類(11中佈局類)

<div class="box">
    <div id="myAuto" class="w_320">
        <h2>自動佈局類</h2>
    </div>
    <div id="myFit" class="w_320">
        <h2>Fit自適應佈局</h2>
    </div>
    <div id="myAccordion" class="w_320">
        <h2>Accordion摺疊佈局</h2>
    </div>
    <div id="myCard" class="w_320">
        <h2>Card卡片式佈局</h2>
    </div>
    <div id="percenAnchor" class="w_320">
        <h2>錨點佈局百分比定位1</h2>
    </div>
    <div id="offsetsAnchor" class="w_320">
        <h2>錨點佈局偏移值定位2</h2>
    </div>
    <div id="sidesAnchor" class="w_320">
        <h2>錨點佈局參考線定位3</h2>
    </div>
    <div id="myAbsolute" class="w_320">
        <h2>Absolute絕對位置的佈局</h2>
    </div>
    <div id="myCheckboxGroup" class="w_320">
        <h2>複選框佈局</h2>
    </div>
    
    <div id="myColumnWidth" class="w_320">
        <h2>Column列布局1:固定列寬</h2>
    </div>
    
    <div id="myColumnBaiWidth" class="w_320">
        <h2>Column列布局2:百分比列寬</h2>
    </div>
    <div id="myColumn" class="w_320">
        <h2>Column列布局2:固定百分比結合使用</h2>
    </div>
    
    <div id="myTable" class="w_320">
        <h2>表格佈局</h2>
    </div>
    
    <div id="myBorder" class="w_320">
        <h2>邊框佈局</h2>
    </div>
    
    <div id="myBox" class="w_320">
        <h2>盒子佈局</h2>
    </div>
</div>
<!--CSS樣式文件-->
<style> 
        .box { padding:50px 0 0 50px; }
        * { padding:0; margin:0; }
        .w_320 { width:320px; float:left; }
        .my-foo-trigger { border-radius:5px; }
        .aaa { background:red; }
</style>
Ext.onReady(function(){
    
    //標準佈局類(11中佈局類)
    //若是直接在面板上添加內容會很凌亂,若是劃分不一樣的區域,在區域中添加內容將會很整潔,就要用到佈局類
    
    //1.Auto佈局類(Ext.layout.container.Auto)(默認方式)
    
    Ext.create('Ext.panel.Panel',{
    
        title : '默認Auto佈局類',
        width : 250,
        height : 200,
        renderTo : 'myAuto',
        frame : true,
        bodyPadding : 5,
        layout : 'auto',//自動佈局
        defaults : {
            bodyStyle : 'background-color:#ffffff'
        },
        //items配置項默認的xtype類型爲panel,能夠經過defaultType配置項進行更改
        items : [{
            title : '面板一',
            html : '面板一'
        },{
            title : '面板二',
            html : '面板二'
        }]
    });
    
    //2.Fit自適應佈局(使惟一的子元素充滿容器,只顯示一個面板,第二個面板並不會顯示)
    Ext.create('Ext.panel.Panel',{
        title : 'Fit自適應佈局',
        width : 250,
        height : 200,
        renderTo : 'myFit',
        frame : true,
        layout : 'fit',//使惟一的子元素充滿容器,只顯示一個面板,第二個面板並不會顯示
        defaults : {
            bodyStyle : 'background-color:#ffffff;'
        },
        items : [{
            title : '面板一',
            html : '面板一'
        },{
            title : '面板二',
            html : '面板二'
        }]
    });
    
    //3.Accordion摺疊佈局(任什麼時候候都只有一個自面板處於打開狀態)
    //製做分組內容或者分組菜單
    Ext.create('Ext.panel.Panel',{
        title : 'Accordion摺疊佈局',
        width : 250,
        height : 200,
        renderTo : 'myAccordion',
        frame : true,
        bodyPadding : 5,
        layout : 'accordion',
        defaults : {
            bodyStyle : 'padding:15px;background-color:#ffffff'
        },
        items : [{
            title : '面板一',
            html : '面板一'
        },{
            title : '面板二',
            html : '面板二'
        },{
            title : '面板三',
            html : '面板三'
        }]
    });
    
    //4.Card卡片式佈局(用於嚮導或者標籤頁)
    //任什麼時候候只有一個自面板處於顯示狀態
    var myCard =  Ext.create('Ext.panel.Panel',{
        title : 'Card卡片式佈局',
        width : 250,
        height : 200,
        renderTo : 'myCard',
        frame :true,
        layout : 'card',//
        activeItem : 0,//設置默認顯示第一個子面板
        bodyPadding : 5,
        defaults : {
            bodyStyle : 'padding:15px; background-color:#ffffff'
        },
        items : [{
            title : '嵌套面板一',
            html : '說明一',
            id : 'p1'
        },{
            title : '嵌套面板二',
            html : '說明二',
            id : 'p2'
        },{
            title : '嵌套面板三',
            html : '說明三',
            id : 'p3'
        }],
        buttons : [{
            text : '上一頁',
            handler : changePage
        },{
            text : '下一頁',
            handler : changePage
        }]
    });
    //觸發函數
    function changePage(btn){
        
        var index = Number(myCard.layout.activeItem.id.substring(1));
        console.info(index);
        if(btn.text == '上一頁'){
            index -= 1;
            if(index < 1){
                index = 1;
            }
        }else {
            index += 1;
            if(index > 3){
                index = 3;
            }
        }
        myCard.layout.setActiveItem('p'+index);
    }
    
    //5.Anchor錨點佈局
    //(1)百分比定位,(2)偏移值定位,(1)參考線定位
    //5.1百分比定位
    Ext.create('Ext.panel.Panel',{
        title : '百分比定位',
        width : 250,
        height :200,
        renderTo : 'percenAnchor',
        frame : false,//渲染面板
        layout : 'anchor',
        defaults : {
            bodyStyle : 'padding:15px; background-color:#ffffff'
        },
        items : [{
            title : '子面板',
            anchor : '50% 50%'
        }]
    });
    //5.2 offsetsAnchor偏移值定位
    Ext.create('Ext.panel.Panel',{
        title : '偏移值定位',
        width : 250,
        height : 150,
        renderTo : 'offsetsAnchor',
        frame : false,//
        layout : 'anchor',
        defaults : {
            bodyStyle : 'padding:15px; background-color:#ffffff'
        },
        items : [{
            title : '子面板',
            anchor : '-10 -10'//寬高偏移父元素10像素
        }]
    });
    //5.3 sidesAnchor參考線定位
    Ext.create('Ext.panel.Panel',{
        title : '參考線定位',
        width : 250,
        height : 150,
        renderTo : 'sidesAnchor',
        frame : false,
        layout : 'anchor',
        autoScroll : true,
        defaults : {
            bodyStyle : 'padding:15px; background-color:#ffffff'
        },
        items : [{
            title : '子面板',
            width : 200,
            height : 100,
            anchor : 'r b',//相對於父容器的右邊和底邊的差值進行定位
            html : '說明'
        }]
    });
    
    //6. Absolute絕對位置的佈局
    Ext.create('Ext.panel.Panel',{
        title : '',
        width : 250,
        height : 150,
        renderTo : 'myAbsolute',
        frame : false,
        layout : 'absolute',
        
        defaults : {
            width : 100,
            height : 70,
            frame : true,
            bodyStyle : 'padding:5px; background-color:#ffffff'
        },
        items : [{
            title : '面板一',
            x : 10,//橫座標距離父元素組編10像素
            y : 10,//縱座標距離父元素組編10像素,
            html : '面板一的內容'
        },{
            title : '面板二',
            x : 130,//橫座標距離父元素組編10像素
            y : 40,//縱座標距離父元素組編10像素,
            html : '面板二的內容'
        }]
    });
    
    //7. myCheckboxGroup複選框佈局
    Ext.create('Ext.panel.Panel',{
    
        title : '複選框佈局',
        width : 250,
        height : 150,
        renderTo : 'myCheckboxGroup',
        frame : true,
        bodyPadding : 5,
        defaults : {
            width : 240,
            labelWidth : 40,
            labelSeparator : ': '
        },
        items : [{
            fieldLabel : '愛好',
            xtype : 'checkboxgroup',
            columns : 3,
            items : [{
                name : 'love',
                boxLabel : '游泳',
                inputValue : 'swim'
            },{
                name : 'love',
                boxLabel : '遊戲',
                inputValue : 'game'
            },{
                name : 'love',
                boxLabel : '遊戲',
                inputValue : 'game'
            },{
                name : 'love',
                boxLabel : '遊戲',
                inputValue : 'game'
            },{
                name : 'love',
                boxLabel : '遊戲',
                inputValue : 'game'
            }]
        }]
    });
    
    //8. Column列布局
    //全部的columnWidth值相加必須等於1或者100%
    //8.1 指定固定列寬
    Ext.create('Ext.panel.Panel',{
        title : 'Column列布局 指定固定列寬',
        width : 250,
        height : 150,
        frame : true,
        renderTo : 'myColumnWidth',
        layout : 'column',
        defaults : {
            height : 100,
            frame : true,
            bodyStyle : 'background-color:#ffffff'
        },
        items : [{
            title : '子面板一',
            width : 100, //指定列寬100像素
            html : '列寬100像素'
        },{
            title : '子面板二',
            width : 100, //指定列寬100像素
            html : '列寬100像素'
        }]
    });
    
    //8.2 百分比列寬
    Ext.create('Ext.panel.Panel',{
        title : 'Column列布局 百分比列寬',
        width : 250,
        height : 150,
        frame : true,
        renderTo :'myColumnBaiWidth',
        layout : 'column',
        defaults : {
            height : 100,
            frame : true,
            bodyStyle : 'background-color:#ffffff'
        },
        items : [{
            title : '子面板一',
            columnWidth : 0.3 ,//百分比寬度30%
            html : '列寬<span style="color:red">30%</span>'
        },{
            title : '子面板二',
            columnWidth : 0.7, //百分比寬度70%
            html : '列寬<span style="color:red">70%</span>'
        }]
    });
    
    
    //8.3  固定百分比結合使用
    Ext.create('Ext.panel.Panel',{
        title : '固定百分比結合使用',
        width : 250,
        height : 150,
        frame : true,
        renderTo :'myColumn',
        layout : 'column',
        defaults : {
            height : 100,
            frame : true,
            bodyStyle : 'background-color:#ffffff'
        },
        items : [{
            title : '子面板一',
            idth : 100 ,//指定寬度100
            html : '列寬<span style="color:red">指定寬度100</span>'
        },{
            title : '子面板二',
            columnWidth : 0.3, //百分比寬度30%
            html : '列寬<span style="color:red">30%</span>'
        },{
            title : '子面板三',
            columnWidth : 0.7, //百分比寬度70%
            html : '列寬<span style="color:red">70%</span>'
        }]
    });
    
    //9. Table表格佈局
    Ext.create('Ext.panel.Panel',{
    
        title : 'Table表格佈局',
        width : 250,
        heigh : 150,
        frame : true,
        renderTo : 'myTable',
        layout : {
            type : 'table',//表格佈局
            columns : 4//設置默認4列
        },
        defaults : {
            width : 50,
            height : 50,
            frame : true,
            bodyStyle : 'bakcground-color : #ffffff'
        },
        items :  [{
            title : '面板一',
            width : 150,
            colspan : 3//設置跨3列
        },{
            title : '面板二',
            height : 100,
            rowspan  : 2//跨2行
        },{
            title : '面板三'
        },{
            title : '面板四'
        },{
            title : '面板五'
        }]
    });
    
    //10. Border邊框佈局(面向應用的UI風格的佈局)
    Ext.create('Ext.panel.Panel',{
        title : 'Border邊框佈局',
        width : 250,
        height : 200,
        frame : true,
        renderTo : 'myBorder',
        layout : 'border',
        defaults : {
            collapsible : true
        },
        items : [{
            title : '北部面板',
            region : 'north' ,//指定區域north
            height : 50,
            html : '頭部'
        },{
            title : '南部面板' ,
            region : 'south',
            height : 50,
            html : '底部'
        },{
            title : '西部面板',
            region : 'west',
            width : 50,
            html : '左邊'
        },{
            title : '東部面板',
            region : 'east',
            width : 50,
            html : '右邊'
        },{
            title : '主要內容',
            region : 'center',//這個必須有
            html : '中間區域不能缺乏'
        }]
    });
    
    //11. Box盒佈局
    //水平盒、垂直盒
    Ext.create('Ext.panel.Panel',{
        title : '盒子佈局',
        width : 300,
        height : 150,
        frame : true,
        renderTo : 'myBox',
        layout : {
            type : 'hbox',
            align : 'stretch'//子面板高度充滿父容器
        },
        items : [{
            title : '子面板一',
            flex : 1,
            html : '1/4寬一'
        },{
            title : '子面板二',
            flex : 1,
            html : '1/4寬二'
        },{
            title : '子面板三',
            flex : 2,
            html : '1/2寬三'
        }]
    });
    
});
相關文章
相關標籤/搜索