ExtJS ViewPort的使用
2015-12-26 14:17
615 查看
ViewPort代表浏览器窗口的整个显示区域,将document body作为渲染对象,它会根据浏览器窗口的大小自动调整自身的尺寸,在一个页面中只允许出现一个ViewPort实例,此外它没有提供对滚动条的支持,如果需要使用滚动条,那么应该在其子面板中进行设置。
ViewPort静态效果显示
一般情况下我们使用左侧菜单,动态的更新中间区域需要显示的页面或信息。下面的例子我们将介绍如何实现。
ViewPort静态效果显示案例,我们将页面分成了五个部分,为了实现左侧菜单动态更新中间显示的效果。左侧区域我们使用TreePanel,中间区域我们使用TabPanel。创建的过程如下:
创建TabPanel
创建TreePanel,并为其添加点击监听。
原始的ViewPort静态效果显示代码,更改为如下:
左侧菜单动态添加中间显示内容
ViewPort静态效果显示
//静态效果显示 Ext.onReady(function(){ Ext.create('Ext.container.Viewport',{ layout:'border',//表格布局 items:[{ title:'North Panle', html:'上边', region:'north',//指定子面板所在区域为north height:100, collapsible:true //是不是可以折叠 },{ title:'West Panle', html:'左边', region:'west',//指定子面板所在区域为west width:100, collapsible:true //是不是可以折叠 },{ title:'Main Content', html:'中间', region:'center',//指定子面板所在区域为center collapsible:true //是不是可以折叠 },{ title:'East Content', html:'右边', region:'east',//指定子面板所在区域为center width:100, collapsible:true //是不是可以折叠 },{ title:'Bottom Panle', html:'下边', height:100, region:'south',//指定子面板所在区域为south collapsible:true //是不是可以折叠 }] }); });
一般情况下我们使用左侧菜单,动态的更新中间区域需要显示的页面或信息。下面的例子我们将介绍如何实现。
ViewPort静态效果显示案例,我们将页面分成了五个部分,为了实现左侧菜单动态更新中间显示的效果。左侧区域我们使用TreePanel,中间区域我们使用TabPanel。创建的过程如下:
创建TabPanel
//创建TabPanel var tabPanel = Ext.create('Ext.TabPanel',{ title:'Main Content', region:'center', activeTab:0, collapsible:true, //是否可以折叠 // html:'Main Content02', });
创建TreePanel,并为其添加点击监听。
//创建TreePanel var treePanel = Ext.create('Ext.tree.TreePanel',{ title:'West Panle', // html:'左边', region:'west',//指定子面板所在区域为west width:150, collapsible:true, //是否可以折叠 autoScroll:true, //自动滚动条 animate:true, //动画效果 rootVisible:true, //根节点是否可见 lines:true, //节点之间使用横竖线连接 root:{ text:'网址管理', id:'root', children:[{ text:'百度地址', id:'http://www.baidu.com', leaf:false, children:[{ text:'百度新闻', id:'http://news.baidu.com', leaf:true }] },{ text:'新浪地址', id:'http://www.sina.com.cn', leaf:true }] }, listeners:{ "itemclick":function(v,r,item){ var n = tabPanel.getComponent(r.raw.id); if(!r.raw.leaf){ //非叶子节点,不进行操作 return; } if(!n){ n = tabPanel.add({ 'id' : r.raw.id, 'title' : r.raw.text, closable : true, // 通过html载入目标页 html : '<iframe scrolling="auto" frameborder="0" width="100%" height="100%" src="'+r.raw.id+'"></iframe>' }); } tabPanel.setActiveTab(n); } } });
原始的ViewPort静态效果显示代码,更改为如下:
左侧菜单动态添加中间显示内容
//Sample-020 左侧菜单动态添加中间显示内容
Ext.onReady(function(){
//创建TabPanel var tabPanel = Ext.create('Ext.TabPanel',{ title:'Main Content', region:'center', activeTab:0, collapsible:true, //是否可以折叠 // html:'Main Content02', });
//创建TreePanel var treePanel = Ext.create('Ext.tree.TreePanel',{ title:'West Panle', // html:'左边', region:'west',//指定子面板所在区域为west width:150, collapsible:true, //是否可以折叠 autoScroll:true, //自动滚动条 animate:true, //动画效果 rootVisible:true, //根节点是否可见 lines:true, //节点之间使用横竖线连接 root:{ text:'网址管理', id:'root', children:[{ text:'百度地址', id:'http://www.baidu.com', leaf:false, children:[{ text:'百度新闻', id:'http://news.baidu.com', leaf:true }] },{ text:'新浪地址', id:'http://www.sina.com.cn', leaf:true }] }, listeners:{ "itemclick":function(v,r,item){ var n = tabPanel.getComponent(r.raw.id); if(!r.raw.leaf){ //非叶子节点,不进行操作 return; } if(!n){ n = tabPanel.add({ 'id' : r.raw.id, 'title' : r.raw.text, closable : true, // 通过html载入目标页 html : '<iframe scrolling="auto" frameborder="0" width="100%" height="100%" src="'+r.raw.id+'"></iframe>' }); } tabPanel.setActiveTab(n); } } });
Ext.create('Ext.container.Viewport',{
layout:'border',//表格布局
items:[{
title:'North Panle',
html:'上边',
region:'north',//指定子面板所在区域为north
height:100,
collapsible:true //是否可以折叠
},treePanel,tabPanel,{
title:'East Content',
html:'右边',
region:'east',//指定子面板所在区域为center
width:100,
collapsible:true //是否可以折叠
},{
title:'Bottom Panle',
html:'下边',
height:100,
region:'south',//指定子面板所在区域为south
collapsible:true //是否可以折叠
}]
});
});
相关文章推荐
- javascript进阶系列专题:作用域与作用域链
- json解析
- ExtJS Grid组件实现分页功能
- [转]如何判断js中的数据类型
- Reverse Integer leetcode--JavaScript
- JavaScript模板引擎综述
- HTML之JS经典验证
- 避免IE执行AJAX时,返回JSON出现下载文件
- 页面重定向js
- Javascript对DOM的操作
- 【JavaScript.05】JS事件晓知识, 切换功能好兼容
- Eclipse插件 ExploreFS,Regex Util,代码块折叠,JSON 编辑插件
- JavaScript位置与大小(1)之正确理解和运用与尺寸大小相关的DOM属性
- JavaScript----简介
- JS去除字符串左右两端的空格
- HTML,CSS,JavaScript
- 超实用js代码段一
- JavaScript动态设置div的样式的方法
- c#中把json数据转到dataset中的方法
- js中return false的妙用