<!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>Panel</title> <link type="text/css" rel="stylesheet" href="../../ext/resources/css/ext-all.css"> <style type="text/css"> .contain{ /* 设置背景 */ background:#000; /* 居中设置 */ margin:0 auto; width:500px; height:500px; /* 外层div相对定位 */ position:relative; } .center{ /* 居中设置 */ margin:0 auto; /* 内层div相对外层div绝对居中 */ position:absolute; /* 指定内层div的位置 */ top:150px; left:150px; } </style> <script type="text/javascript" src="../../ext/adapter/ext/ext-base.js"></script> <script type="text/javascript" src="../../ext/ext-all.js"></script> <script type="text/javascript"> Ext.onReady(function() { var _panel = new Ext.Panel({ frame:true, width:200, height:200, title:"面板" }); _panel.addButton({text: "确 定"}); _panel.addButton(new Ext.Button({ text:"new Button", minWidth:100 })); /* 动态创建元素 DomHelper.append */ _panel.applyToMarkup(Ext.DomHelper.append(Ext.getBody(),{ tag:"div", cls:"contain", cn:[{ tag:"div", cls:"center" }] }, true).child("div")); }); </script> </head> <body> </body> </html>
这里在向页面中添加元素的时候用到了applyToMarkup()方法,该方法类似render(),简单的解释一下:
如果在构造参数中定义:
* renderTo:将当前对象放到renderTo指定的元素里面
* applyTo:直接在当前对象之上构建
在构造方法外部定义:
* render:等同于renderTo()
* applyToMarkup:等同于applyTo()
DomHelper.append是Ext中动态创建Dom对象的方式,也是经常用到的一个方法,来看API中的定义
DomHelper.append ( Mixed el , Object/String o , [Boolean returnElement ] ) : HTMLElement/Ext.Element
该方法创建了一个新的DOM元素,并且把它添加到第一个参数指定的DOM对象之中。
Parameters:
* el : 可以是多种形式的上下文元素
*
o : 对象或字符串类型,指定的DOM 对象或者HTML行级元素
*
returnElement : 可选,Boolean 类型,如果值为true,返回一个Ext对象元素,否则返回普通的HTML元素
Returns:
* HTMLElement/Ext.Element :新的HTML节点
上面例子中第二个参数指定是的DIV对象
{
tag:"div",
cls:"contain",
cn:[{
tag:"div",
cls:"center"
}]
}
* tag:target,目标是DIV
* cls:class,指定CSS 样式
* cn:childNode,子节点
* []:中括号中可以动态生成多个子节点对象
* .child("div"):append到指定对象的子节点中第一个DIV上