• 【技能】Ext.Viewport 实现左三右一排列方式。


    1、Extjs 布局非常是灵活。可是吐槽下CSS,太难重写,想自己重构一套都难哎... 

     var viewport = new Ext.Viewport({
                     layout:'border',
                     items:[
                   
                     {
                     //中间部分
                     region:'center', 
                         id: 'centerPanel', 
                         iconCls:'',
                         title:'${centerTitle}',
                         autoScroll:false,
                         header:false,
                         layout: 'fit',
                         items:[mainTabs]},
                         {    
                         //布局左边west部分
    		                region : 'west',                
    		                220,  
    		                collapsible: true,
    		                split:true,
    		                header:false,
    		                border:false,
    		                frame:false,
    		                xtype:'panel',
    		                layout:'anchor',
    		                collapseMode:'mini',
    		                layoutConfig:{columns:1},
    		                items:[{
    		                    split:true,
    		                    region:'west',
    		                    header:false,
    		                    autoScroll:false,
    		                    border:false,
    		                    anchor:'100% 10%',                    
    		                    xtype: 'panel',
    		                    html:'<table border="0" cellpadding="0" cellspacing="0" width="100%"  	height="60" background="./resource/image/banner_background/${theme}.png">	<tr >		<td style="padding-left:15px;padding-top:10px"><img class="IEPNG" src="${banner}" />		</td>	</tr></table>',
    		                    collapsible: true                                 
    		                },{region:'west',
    		                     220,
    		                    anchor:'100% 84%',
    		                    collapsible: true,
    		                    minSize: 200,
    		                    border:false,
    		                    maxSize: 350,
    		                    split: true,
    		                    collapseMode:'mini',
    							iconCls:'book_previousIcon',
    		                    title: '${westTitle}',
    		                    layout:'accordion',
    		                    layoutConfig:{
    		                      animate:true,
    							  activeOnTop : ${activeOnTop}
    							},
    		                   items: [
    								#foreach($card in $cardList)
    									                {
    								                    autoScroll:true,
    								                    border:false,
    								                    contentEl: 'div.card.${card.menuid}',
    								#if(${card.iconcls}&&${card.iconcls}!="")
    								                    iconCls:'${card.iconcls}',
    								#end
    													title:'${card.menuname}'
    								                   }
    								#if(${card.isNotLast})
    													  ,
    								#end
    								#end
    						   ]
    		                   },{
    		                    split:true,
    		                    region:'west',
    		                    collapsible: true,
    		                    header:false,
    		                    autoScroll:false,
    		                    //border:false,
    		                    anchor:'100% 6%', 
    		                    region:'center',
    							layout: {
    						        type:'hbox',
    						        padding:'3 3 3 3',
    						        pack:'start',
    						        align:'top'
    						    },
    						    defaults:{margins:'0 5 0 0'},
    		                    xtype: 'panel',
    		                    items:[configButton,closeButton]
    		                }]            
    		            }
                    ]}); 

    说明

    1.Viewport一个panel 来固定region:'center', 也就是center部分

    2.再使用一个panel,使用layout:'anchor',布局方式,anchor布局将使组件固定于父容器的某一个位置,使用anchor布局的子组件尺寸相对于容器的尺寸,即父容器容器的大小发生变化时,使用anchor布局的组件会依据规定的规则又一次渲染位置和大小。

    3.新增第二部的panel。加入3个子panel布局。而且配置它们的anchor。来填充父容器,保证改变3个中得一个,其它2个能自己主动填充空间,进行自己主动适应。

    4.这里提示一点:因为是使用4个panel 组装成的区域,能够使用collapseMode:'mini',来控制关闭右側的面板。

    实现效果:




  • 相关阅读:
    git版本超前了N个版本且落后了N个版本的解决办法
    CSS3与动画有关的属性transition、animation、transform对比
    禁止选中文本JS
    页面加载中jquery逐渐消失效果实现
    localstorage和sessionstorage上手使用记录
    点击除元素以外的任意地方隐藏元素js
    js准确获取当前页面url网址信息
    301、404、200、304、500HTTP状态
    对事件委托绑定click的事件的解绑
    RabbitMQ的安装和使用Python连接RabbitMQ
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/7070583.html
Copyright © 2020-2023  润新知