如何设置 Ext.Viewport 的宽度(定位)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何设置 Ext.Viewport 的宽度(定位)相关的知识,希望对你有一定的参考价值。
我想让它定位成:width:1170px,然后让它居中:margin:0 auto;
参考技术A 面板是ExtJs控件的基础,很多控件都是在面板的基础上扩展的,或者他会与其他控件之间有关系。面板由一个工具栏、一个底部工具栏、面板头部、面板尾部和面板主区域几个部分组成。面本类中还提供了面板展开、关闭等功能。并提供了一些可重用的工具按钮 让我们灵活的控制面板。面板可以放入其他任何容器中,面板本身也是一个容器,所以面板里面也可以包含其他组件。面板的类名为Ext.Panel,其 xtype为panel。
看下面一个例子来显示出面板的各个组成部分:
//普通的面板
function panel()
var panel=new Ext.Panel(
renderTo:'panel',
title:'面板的头部',
width:400,
height:200,
html:'<h1>面板的主显示区域..可包含任何html代码</h1>',
tbar:[text:'顶部工具栏按钮'],
bbar:[text:'底部工具栏'],
buttons:[
text:'面板底部按钮',
handler:function()
Ext.Msg.alert('提示','面板底部按钮的事件!');
]
);
上面的代码就不做详细介绍了,特别注意的一点是renderTo:'panel',这句代码负责把面板绑定到一个div层里,panel就是div的ID。
<div id="panel"></div>
代码执行后会显示下面的效果:
效果不错吧!面板中可以有多个工具栏,可以位于面板的顶部或底部,Ext工具栏是由Ext.Toolbar类表示。工具栏可以存放按钮、文本等内容。而且面板中还提了一些实用的工具栏,可以通过tools配置属性向面板头部加入工具栏选项,看下面的案例:
function panel()
var panel=new Ext.Panel(
tools:[
id:"save",
id:"help",
id:"up",
id:"close",
handler:function()
Ext.MessageBox.alert("工具栏按钮","工具栏的关闭按钮事件")
],
renderTo:'panel',
title:'面板的头部',
width:400,
height:200,
html:'<h1>面板的主显示区域..可包含任何html代码</h1>',
tbar:[text:'顶部工具栏按钮'],
bbar:[text:'底部工具栏'],
buttons:[
text:'面板底部按钮',
handler:function()
Ext.Msg.alert('提示','面板底部按钮的事件!');
]
);
跟普通的面板没什么区别,只是多了个tools配置属性,可以通过ID来设置工具栏选项种类,如果需要给工具栏选项添加事件,则直接配置handler属性就可以。下面我为大家贴了一些id的枚举值:
toggle (collapsable为true时的默认值)
close
minimize
maximize
restore
gear
pin
unpin
right
left
up
down
refresh
minus
plus
help
search
save
上面的东西我也没有全部测试,如果大家感兴趣就自己试一下吧。
如果我们需要让这个面板可以拖动,需要加3个配置属性,改变一处配置。
:88,
y: 88,
renderTo: Ext.getBody(),//x,y,renderTo:Ext.getBody()初始化panel的位置
draggable:
insertProxy: false,//拖动时不虚线显示原始位置
onDrag : function(e)
var pel = this.proxy.getEl();
this.x = pel.getLeft(true);
this.y = pel.getTop(true);//获取拖动时panel的坐标
var s = this.panel.getEl().shadow;
,
endDrag : function(e)
this.panel.setPosition(this.x, this.y);//移动到最终位置
x与y是设置在屏幕显示位置,renderTo不需要指定div的id了,直接用Ext.getBody()方法就可以把Panel加载。
draggable是拖动时设置,onDrag是在拖动时触发的事件,endDrag是结束拖动时事件。
效果:
这样就可以拖动了,但是会发现在拖动时有一个黑框框,这样可能有些不美观了。如果我们需要让这个黑框随着移动位置而变化。那么我们需要在onDrag事件函数中加如下代码:
if (s)
s.realign(this.x, this.y, pel.getWidth(), pel.getHeight());
看看拖动例子的全部代码:
//可以拖动的面板
function panelDrag()
var panel=new Ext.Panel(
title: '拖一下看看我动不.',
x:88,
y: 88,
renderTo: Ext.getBody(),//x,y,renderTo:Ext.getBody()初始化panel的位置
floating: true,//true
frame: true,//圆角边框
width: 400,
height: 200,
draggable:
insertProxy: false,//拖动时不虚线显示原始位置
onDrag : function(e)
var pel = this.proxy.getEl();
this.x = pel.getLeft(true);
this.y = pel.getTop(true);//获取拖动时panel的坐标
var s = this.panel.getEl().shadow;
if (s)
s.realign(this.x, this.y, pel.getWidth(), pel.getHeight());
,
endDrag : function(e)
this.panel.setPosition(this.x, this.y);//移动到最终位置
)
Ext.Panel有几个子类,所以来介绍一下Panel中常见的配置属性、方法,下面内容是资料中的:
1.autoLoad:有效的url字符串,把那个url中的body中的数据加载显示,但是可能没有样式和js控制,只是html数据
2.autoScroll:设为true则内容溢出的时候产生滚动条,默认为false
3.autoShow:设为true显示设为"x-hidden"的元素,很有必要,默认为false
4.bbar:底部条,显示在主体内,//代码:bbar:[text:'底部工具栏bottomToolbar'],
5.tbar:顶部条,显示在主体内,//代码:tbar:[text:'顶部工具栏topToolbar'],
6.buttons:按钮集合,自动添加到footer中(footer参数,显示在主体外)//代码:buttons:[text:"按钮位于footer"]
7.buttonAlign:footer中按钮的位置,枚举值为:"left","right","center",默认为right
8.collapsible:设为true,显示右上角的收缩按钮,默认为false
9.draggable:true则可拖动,但需要你提供操作过程,默认为false
10.html:主体的内容
11.id:id值,通过id可以找到这个组件,建议一般加上这个id值
12.width:宽度
13.height:高度
13.title:标题
14.titleCollapse:设为true,则点击标题栏的任何地方都能收缩,默认为false.
15.applyTo:(id)呈现在哪个html元素里面
16.contentEl:(id)呈现哪个html元素里面,把el内的内容呈现
17.renderTo:(id)呈现在哪个html元素里面
applyTo、contentEl、renderTo三者区别个人理解为:applyTo和RenderTo绑定到html元素中,contentEl则是html元素到ext组件中去。
上面说到面板都是绑定在某个html元素中显示面板,是局部的。Extjs中还有一个可以显示在整个body中的组件Ext.ViewPort,它会随着浏览器而变化。要注意的是一个页面中只能存在一个viewport的实例。看下面的代码
function viewport()
var view=new Ext.Viewport(
enableTabScroll:true,
layout:"fit",
items:[
title:'标题',
html:"内容",
bbar:[
text:"按钮1"
]
]
)
与其它使用方式大同小异,Viewport不需要指定renderTo,Viewport通常用于网站主页面,Viewport常用布局有fit、border等,设置layout属性改变布局。
基本的面板我们了解了,还有一个很重要的面板TabPanel,这里用一个小例子做说明,代码就不解释了。面板的用法是非常灵活的,我们可以发挥自己的想象力来做出漂亮的选项卡面板和实用的功能。因为它是可以无限嵌套控件的。
function tabpanel()
var tabpanel=new Ext.TabPanel(
activeTab:0, //设置默认选择的选项卡
renderTo:'tabpanel',
width:200,
height:150,
items:[
title:"第一个选项",
html:"第一个的内容"
,
title:"第二个选项",
html:"第一个的内容"
]
);
对待本人用到的东西来做一个小设计。代码不多做讲解,发一下代码和效果吧
点击展开
更多 0上一篇:Extjs学习总结
下一篇:ExtJs Panel翻译
相关主题推荐 extjs 浏览器 控件 布局 移动 相关博文推荐 vimperator部分使用帮助 javascript 常用函数归纳 javascript原生代码—跨浏览器事... [Phonegap+Sencha Tou... [Phonegap+Sencha Tou... [Phonegap+Sencha Tou... [Phonegap+Sencha Tou... [Phonegap+Sencha Tou... 查看评论
暂无评论
您还没有登录,请[登录]或[注册]
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
核心技术类目全部主题 Java VPN android ios ERP IE10 Eclipse CRM JavaScript Ubuntu NFC WAP jQuery 数据库 BI HTML5 Spring Apache Hadoop .NET API HTML SDK IIS Fedora XML LBS Unity Splashtop UML components Windows Mobile Rails QEMU KDE Cassandra CloudStack FTC coremail OPhone CouchBase 云计算 iOS6 Rackspace Web App SpringSide Maemo Compuware 大数据 aptech Perl Tornado Ruby Hibernate Thinkphp Spark HBase Pure Solr Angular Cloud Foundry Redis Scala Django Bootstrap 个人资料
thunder_1985
访问:49882次
积分:1107分
排名:第12092名
原创:49篇 转载:0篇 译文:14篇 评论:11条 文章搜索 文章分类Ant(0)
dwr(5)
Hibernate(1)
javascript(2)
JDBC(2)
Junit(0)
Servlet(0)
Spring(0)
Struts2(3)
UML(0)
XML(0)
文章存档2010年01月(2)2009年12月(12)2009年11月(5)2009年10月(22)2009年09月(22)
阅读排行Struts2文件上传(6028)
ExtJs之combobox(4648)
Struts2文件下载(3970)
struts2异常处理(3809)
ExtJS学习笔记 Ext.FormPanel(2216)
Extjs学习总结(1634)
ExtJs Panel翻译(1453)
ExtJS面板的使用(Ext.Panle、Ext.TabPanel、Ext.Viewport) (1346)
Oracle安装失败后如何完全卸载(1158)
PreparedStatement用法总结(1098)
评论排行Struts2文件下载(3)
mysql分页(3)
PreparedStatement用法总结(2)
PreparedStatement和Statement比较(1)
ExtJs之combobox(1)
Struts2文件上传(1)
引用 extJs 2.0学习笔记(Element.js篇)(0)
让select处于不选中状态(0)
innerText与innerHTML区别 (0)
Oracle安装失败后如何完全卸载(0)
推荐文章最新评论Struts2文件上传
nhm_lxy: 师傅 带带我吧
PreparedStatement用法总结
zlp1992: 你好,如果数据库的是char类型,该怎么设置呢?
PreparedStatement用法总结
teteert: 如果数据库中有一个字段是自动增加的,则使用PrepareedStatement 怎么插入数据啊,自动...
Struts2文件下载
wdlht001: 很好用~谢谢
Struts2文件下载
jinweisheng5521:
ExtJs之combobox
匿名用户:
Struts2文件下载
hetengfeng:
MySql分页
匿名用户:
PreparedStatement和Statement比较
匿名用户:
MySql分页
JavaAlpha:本回答被提问者采纳
如何在不影响宽度的情况下定位固定[重复]
【中文标题】如何在不影响宽度的情况下定位固定[重复]【英文标题】:How to position fixed without interfering with the width [duplicate] 【发布时间】:2013-10-28 07:21:44 【问题描述】:想知道如何将我的#header 定位固定而不让它变宽。
我多次检查了我的代码,但似乎无法弄清楚是什么干扰了我的标题宽度。由于某种原因,它变得更宽并向下跳跃,而我之前给了它 70% 的宽度,以后不要在任何地方改变宽度。
如何将我的标题位置固定为正确的宽度:70% 并且不让它向下跳? 还有比我现在拥有的正确方法或更好的方法让我的“我的名字”和我的导航在#header中彼此相邻吗? #header 左侧是我的名字,右侧是导航栏。
HTML5:
<body>
<section id="Header" class="group">
<header>
<h2><a href="http://www.epicforever.com">My Name</a></h2>
</header>
<nav class="main">
<ul class="group">
<li class="active"><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Contact</a></li>
</ul>
</nav>
</section>
<section id="TopContainer" class="group">
<p>Welcome to my Portfolio</p>
<p>Webdevelopment is my passion and I'd love to design and develop a website for you
sometime!</p>
<div class="block1">
<header><h2>Brand</2></header>
</div>
<div class="block2">
<header><h2>Web</h2></header>
</div>
<div class="block3">
<header><h2>Design</h2></header>
</div>
<aside><p>See all projects<a href="#">// brand // web // print</a></p></aside>
</section>
CSS3:
html
width: 100%;
body
background-image: url("img/bg.png");
font-family: arial, 'Lucida Sans Unicode';
font-size: 87.5%;
line-height: 15px;
color: #000305;
#Header, #TopContainer, #MidContainer, #AboutContainer, #ContactContainer
width: 70%;
margin: 0 auto;
#Header
padding: 0 10% 0 10%;
background-color: #fff;
margin-top: -8px;
position: fixed;
#Header header h2
padding-top: 13px;
#Header nav
text-align: right;
#Header nav ul li
list-style: none;
display: inline-block;
padding: 5px;
#TopContainer
height: 150px;
padding: 0 10% 10% 10%;
background-color: #fff;
margin-top: 90px; /* change this at the end*/
【问题讨论】:
我还没有找到解决方案,但是给 body 一个 1px 的边框可以解决问题。 我把css改成:#Header header h2 position: absolute;边距顶部:4px; #标题导航 文本对齐:右;位置:相对;但我想知道这是否是正确的处理方式。 【参考方案1】:所以在花了 10 分钟之后,我看到你在给它一个固定位置之后没有在 #header 中指定顶部位置。
所以你的css应该是
#Header
padding: 0 10% 0 10%;
background-color: #fff;
margin-top: -8px;
position: fixed;
top:0px;
这是小提琴 http://jsfiddle.net/mW5aS/1/
编辑: // 使标题和导航并排
你可以使用浮动属性。
#Header header
padding-top: 13px;
float:left;
width:55%;
#Header nav
text-align: right;
float:right;
width:40%;
这是小提琴http://jsfiddle.net/mW5aS/2/
【讨论】:
感谢您的回答。但是,我希望右侧标题旁边的导航。我想在#header 和顶部的body 之间留出一些空间。我已经想通了 top:0px; ,但这会将#header粘贴到正文的顶部。我还希望导航与标题位于同一行。希望这能澄清一些事情。看看这个标题,,这是我想要重现的:ruthkelly.me @Brain 要并排获得它,您可以使用 float 属性并将 #header 向左浮动和 nav 向右...这是小提琴 jsfiddle.net/mW5aS/2 。让我知道这是否有帮助 Hey Ghost,我正在尝试使用 float 属性来完成它。但是是的,你是对的,在这种情况下,浮动属性确实是并排的。但是,如果我添加一个位置:固定到我的#header,整个#header 都会搞砸。它跳下来,变得更宽。它把我的整个身体推了一点。这就是我所拥有的并且需要让它与 position:fixed;#Header padding: 0 10% 0 10%; background-color: #fff; #Header header h2 position: absolute; margin-top: 4px; #Header nav text-align: right; position: relative;
@Brain.. 你看到小提琴了吗(jsfiddle.net/mW5aS/2)。我添加了 position:fixed 到 #header 和 float 属性,标题似乎在正确的位置
Ghost,我复制/粘贴了您的代码,但它对我不起作用。我不希望标题粘在页面顶部。我想在页面顶部和我的#header 之间留一些空间。我试图在没有浮动属性的情况下实现这一点。固定位置正在工作,但#header 比预期的要宽。注意我的 css: html width: 100%;高度:100%; body 背景图片: url("img/bg.png"); font-family: arial, 'Lucida Sans Unicode';字体大小:87.5%;行高:15px;颜色:#000305;宽度:90%;高度:100%;保证金:1% 自动; 以上是关于如何设置 Ext.Viewport 的宽度(定位)的主要内容,如果未能解决你的问题,请参考以下文章