- 浏览: 260066 次
- 性别:
- 来自: 深圳
-
文章分类
最新评论
-
dhunter:
mongodb 需要auth 怎么加呢?
linux下mongodb+nodejs环境搭建 -
y1d2y3xyz:
xie666 写道html.push('<td alig ...
javascript DOM操作性能-----创建DOM -
xie666:
html.push('<td align="c ...
javascript DOM操作性能-----创建DOM -
轩辕丶菓菓:
bushkarl 写道那我后台用struts2,我的name一 ...
Ext表单之loadRecord用法详解 -
heikediguo:
这样不会按照你想要的顺序加载。
加载JS文件
Extjs的对Dom最基础的封装,主要包括:元素的包含关系,元素或文档的可视宽高,获取元素的位置,设置元素的位置,这些都是elment最基础的属性,这涉及到各个浏览器兼容器问题,如果想获得详细解答,可以看看 Nicholas C.Zakas 的《javascript高级程序设计》第二版 第11章261-268页
(function(){ var doc = document, //浏览器盒状模式:BackCompa->Quirks Modet和CSS1Compat->Standards Mode 跟文档声明相关 isCSS1 = doc.compatMode == "CSS1Compat",//Ext.isStrict就是这么做的,为什么Ext不用这个,这里重新设置下,而且下面也有用这个,有点想不通这么做的用意 MAX = Math.max, ROUND = Math.round, PARSEINT = parseInt; Ext.lib.Dom = { isAncestor : function(p, c) {//判断p是否包含子节点c var ret = false; p = Ext.getDom(p); c = Ext.getDom(c); if (p && c) { //contains IE,Safari 3+,Opear 8+,Chorme 支持 contains if (p.contains) { return p.contains(c); } else if (p.compareDocumentPosition) {//ff 支持compareDocumentPosition,并有返回值,1->无关 2->居前 3->居后 8->包含 16->被包含 return !!(p.compareDocumentPosition(c) & 16); } else {//循环查找的方式 while (c = c.parentNode) { ret = c == p || ret; } } } return ret; }, //这个调用下面的方法 getViewWidth : function(full) { return full ? this.getDocumentWidth() : this.getViewportWidth(); }, //这个调用下面的方法 getViewHeight : function(full) { return full ? this.getDocumentHeight() : this.getViewportHeight(); }, //接下来的四个方法很简单,也就是从浏览器版本和盒子模型上的兼容性做判断 getDocumentHeight: function() { return MAX(!isCSS1 ? doc.body.scrollHeight : doc.documentElement.scrollHeight, this.getViewportHeight()); }, getDocumentWidth: function() { return MAX(!isCSS1 ? doc.body.scrollWidth : doc.documentElement.scrollWidth, this.getViewportWidth()); }, getViewportHeight: function(){ return Ext.isIE ? (Ext.isStrict ? doc.documentElement.clientHeight : doc.body.clientHeight) : self.innerHeight; }, getViewportWidth : function() { return !Ext.isStrict && !Ext.isOpera ? doc.body.clientWidth : Ext.isIE ? doc.documentElement.clientWidth : self.innerWidth; }, getY : function(el) { return this.getXY(el)[1]; }, getX : function(el) { return this.getXY(el)[0]; }, //核心获取节点的x y 是位置 getXY : function(el) { var p, pe, b, bt, bl, dbd, x = 0, y = 0, scroll, hasAbsolute, bd = (doc.body || doc.documentElement), ret = [0,0]; el = Ext.getDom(el); if(el != bd){ //getBoundingClientRect,IE,FF3+,Opera9.5+ 都支持,IE和其他浏览器对于文档的位置是不一样的,IE为(2,2),其他为(0,0) if (el.getBoundingClientRect) { b = el.getBoundingClientRect(); scroll = fly(document).getScroll(); ret = [ROUND(b.left + scroll.left), ROUND(b.top + scroll.top)]; } else { p = el; hasAbsolute = fly(el).isStyle("position", "absolute"); //循环向上查找元素,并改变元素的x,y while (p) { pe = fly(p); x += p.offsetLeft; y += p.offsetTop; hasAbsolute = hasAbsolute || pe.isStyle("position", "absolute"); if (Ext.isGecko) { //isGecko 需要加上边框值 y += bt = PARSEINT(pe.getStyle("borderTopWidth"), 10) || 0; x += bl = PARSEINT(pe.getStyle("borderLeftWidth"), 10) || 0; if (p != el && !pe.isStyle('overflow','visible')) { x += bl; y += bt; } } p = p.offsetParent; } if (Ext.isSafari && hasAbsolute) { x -= bd.offsetLeft; y -= bd.offsetTop; } if (Ext.isGecko && !hasAbsolute) { dbd = fly(bd); x += PARSEINT(dbd.getStyle("borderLeftWidth"), 10) || 0; y += PARSEINT(dbd.getStyle("borderTopWidth"), 10) || 0; } p = el.parentNode; while (p && p != bd) { if (!Ext.isOpera || (p.tagName != 'TR' && !fly(p).isStyle("display", "inline"))) { x -= p.scrollLeft; y -= p.scrollTop; } p = p.parentNode; } ret = [x,y]; } } return ret }, setXY : function(el, xy) { (el = Ext.fly(el, '_setXY')).position(); //参见 Ext.Element.translatePoints,其返回left,top值 var pts = el.translatePoints(xy), style = el.dom.style, pos; for (pos in pts) { if(!isNaN(pts[pos])) style[pos] = pts[pos] + "px" } }, setX : function(el, x) { this.setXY(el, [x, false]); }, setY : function(el, y) { this.setXY(el, [false, y]); } }; })();
发表评论
-
Extjs源码之--Ext事件机制/继承关系
2011-10-16 16:36 1889Extjs源码之--Ext.lib.Event 中分析了EX ... -
Extjs源码之--Ext.lib.Event(事件的简单封装)
2011-10-16 11:34 2663这个对象是对事件的基础封装,在实际使用中,我们往往不从这里去 ... -
Extjs源码之---Ext.util.DelayedTask
2011-10-12 22:56 2458/* 创建对象 var task = new Ext. ... -
Extjs源码之-- Ext.util.JSON
2011-09-23 23:19 4058很多写extjs的朋友说,Extjs的源码之间的关系太紧了,所 ... -
Ext.form.ComboBox 远程带分页显示
2011-09-23 22:00 1895很多时候针对大数据量的下拉列表的时候,我们通常需要分页显示数据 ... -
Ext.form.ComboBox change事件的BUG
2011-09-08 23:11 5417因为项目需要,想用Ext的combo控件实现动态级联,发现co ... -
Ext.grid.EditorGridPanel 中combo的显示异常
2011-09-03 00:58 2800Ext.grid.EditorGridPanel 在项目中用到 ... -
extjs源码分析-Ext.util.TaskRunner(模拟多线程)
2011-08-12 12:09 3048/** * @class Ext.util.TaskR ... -
extjs源码分析-016(Ext....)
2011-03-28 23:04 1072Ext.apply(Ext, function(){ ... -
extjs源码分析-015(Number扩展)
2011-03-20 01:03 918Ext.applyIf(Number.prototype, ... -
extjs源码分析-013(Array扩展)
2011-03-19 11:03 1142Ext.applyIf(Array.prototype, ... -
extjs源码分析-013(String扩展)
2011-03-18 23:05 1308//字符串替换 /* var cls = 'my-cl ... -
extjs源码分析-012(Funtion扩展)
2011-03-18 22:42 1315Ext.apply(Function.prototype, ... -
extjs源码分析-011(namespace)
2011-03-10 22:54 1104//命名空间,就是创建一个OBJ的一个属性, names ... -
extjs源码分析-009(Ext.urlAppend/toArray)
2011-03-10 22:43 1884//在URL后面追加参数 urlAppend : fun ... -
extjs源码分析-009(Ext.urlDecode/urlEncode)
2011-03-09 23:17 3302//把json格式转化成url的编码方式 // e.g. ... -
extjs源码分析-008(Ext.removeNode)
2011-03-09 22:35 1805DOC = document; removeNode : ... -
extjs源码分析-007(Ext.each)
2011-02-08 14:40 1643each : function(array, fn ... -
extjs源码分析-006(Ext.override/Ext.extend)
2011-02-08 00:40 2145override : function(o ... -
extjs源码分析-005(Ext.getDom,Ext.getBody)
2011-02-08 00:22 2054var DOC = document; //获取DOM节 ...
相关推荐
- Extjs提供了一套面向对象的编程模型,支持类的继承、封装等特性。 - 通过`Ext.extend`和`Ext.override`方法可以实现类的继承和重写。 - **配置(config)选项** - 配置选项是Extjs组件的核心,用于设置组件的...
内容概要:本文详细介绍了Harnefors观测器在永磁同步电机(PMSM)无感控制中的应用,特别是其在Matlab 2020b环境下的仿真模型。Harnefors观测器以其简洁的十行核心代码实现了对电机角度的精确估算,仅需调整单一参数lambda即可应对各种工况。文中展示了该观测器在初始角度误差极大情况下的优异收敛性能,以及在带载启动和多种速度指令下的稳定性。此外,模型中引入的有效磁链概念使得同一观测器能够兼容表贴式和内嵌式电机,进一步提升了其实用性和灵活性。仿真结果显示,该观测器不仅能在极端条件下迅速收敛,还能在不同电机参数下保持稳定的性能表现。 适合人群:从事电机控制系统设计与开发的技术人员,尤其是关注无感FOC技术和观测器优化的研究人员。 使用场景及目标:①用于研究和开发高性能无感FOC系统;②评估和改进现有电机控制系统的观测器设计;③为初学者提供一个简洁而高效的观测器实现案例,帮助理解和掌握相关技术。 其他说明:文章提供了详细的代码片段和实验数据,便于读者进行复现和进一步探索。同时,强调了模型的扩展性和实用性,特别是在不同类型的永磁同步电机中的应用。
内容概要:本文详细介绍了使用COMSOL软件中的相场法进行水力压裂模拟的技术细节。首先探讨了单一裂缝的扩展机制,包括相场参数的选择如界面厚度参数(epsilon)、断裂能(Gc),以及各向异性分散设置的影响。接着逐步深入到多个裂缝簇的竞争扩展,特别是两簇和三簇裂缝之间的应力阴影效应及其对裂缝形态的影响。文中还讨论了水力裂缝与天然裂缝相交时的特殊处理方法,如接触条件设定、摩擦系数调整等。此外,文章强调了网格划分、时间步长设置等数值模拟的关键技巧,并展示了如何利用相场变量的动态可视化来直观地观察裂缝的生长过程。 适合人群:从事石油工程、地质力学、计算力学等领域研究的专业人士和技术人员。 使用场景及目标:适用于希望深入了解水力压裂过程中裂缝形成机理的研究人员,以及希望通过数值模拟优化压裂作业的设计工程师。主要目标是掌握相场法的基本原理及其在COMSOL平台上的具体实现方式,从而更好地理解和预测实际工程中的裂缝行为。 其他说明:文章不仅提供了详细的MATLAB代码片段用于指导具体的建模步骤,还分享了许多实用的经验和技巧,帮助读者规避常见的数值发散等问题。同时,通过对不同工况的对比分析,揭示了相场法在处理复杂裂缝网络方面的优势。
管道清污机器人sw16可编辑_三维3D设计图纸_包括零件图_机械3D图可修改打包下载_三维3D设计图纸_包括零件图_机械3D图可修改打包下载.zip
该资源为keras-3.3.2.tar.gz,欢迎下载使用哦!
C语言课程设计的一些经典项目以及源码.zip
水果采摘机器人sw22_三维3D设计图纸_包括零件图_机械3D图可修改打包下载_三维3D设计图纸_包括零件图_机械3D图可修改打包下载.zip
爬百度文库ppt(1)
新能源电机sw22可编辑_三维3D设计图纸_包括零件图_机械3D图可修改打包下载_三维3D设计图纸_包括零件图_机械3D图可修改打包下载.zip
内容概要:本文详细介绍了利用CNN-LSTM混合模型进行锂离子电池健康状态(SOH)估计的方法。首先,通过对NASA公开数据集的分析,提取了三个关键特征:放电电压最低点时间、平均放电电压和平均放电温度。接着,构建了一个由卷积神经网络(CNN)和长短时记忆网络(LSTM)组成的混合模型,用于捕捉电池数据的局部特征和时序依赖。模型经过精心调参和优化,在NASA B0005和B0006电池数据集上取得了优异的表现,RMSE低于1.5%,MAPE控制在1.5%左右。此外,文中提供了完整的Python代码实现,包括数据预处理、模型搭建、训练和结果可视化的具体步骤。 适合人群:从事电池管理系统的研发人员、机器学习工程师以及对深度学习应用于电池健康管理感兴趣的科研工作者。 使用场景及目标:适用于需要精确评估锂离子电池健康状态的应用场合,如电动汽车、储能系统等领域。主要目标是提高电池使用寿命预测的准确性,从而优化电池维护计划并延长设备使用寿命。 其他说明:文中强调了特征选择的重要性,并指出合理的特征工程可以显著提升模型性能。同时提醒使用者在实际应用中结合电池管理系统的实时数据进行在线校准,以获得更好的预测效果。
内容概要:本文详细探讨了在三相不平衡电压条件下,T型NPC三电平并网逆变器的控制策略及其具体实现方法。首先介绍了正负序分离技术,利用复数旋转因子和双二阶广义积分器(DSOGI)进行坐标变换,将三相电压分解为正序和负序分量。接着讨论了中点电位平衡问题,采用零序电压注入的方法并通过PI调节器来稳定中点电位。随后阐述了空间矢量脉宽调制(SVPWM)的具体实现步骤,包括矢量选择逻辑和作用时间计算。此外,文章还涉及电流环参数的设计,提供了基于电网阻抗特性的PI参数调整方法。最后展示了仿真实验结果,验证了所提出控制策略的有效性和优越性能。 适合人群:电力电子工程师、从事逆变器研究的技术人员以及相关领域的研究生。 使用场景及目标:适用于需要解决三相不平衡电压问题的并网逆变器控制系统设计,旨在提高系统的稳定性、可靠性和效率。 其他说明:文中提供的代码片段和仿真模型有助于读者更好地理解和应用这些控制策略。建议读者结合实际硬件条件进行适当调整,并参考相关文献深入学习。
GEE教学-个快快版-共28讲.rar
电子仿真教程,从基础到精通,每个压缩包15篇教程,每篇教程5000字以上。
1、文件说明: Centos8操作系统thai-scalable-tlwgtypewriter-fonts-0.6.5-1.el8.rpm以及相关依赖,全打包为一个tar.gz压缩包 2、安装指令: #Step1、解压 tar -zxvf thai-scalable-tlwgtypewriter-fonts-0.6.5-1.el8.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm
内容概要:本文详细介绍了如何利用Simulink搭建永磁同步电机(PMSM)的谐波注入补偿模型,重点在于抑制5次和7次电流谐波。文中解释了谐波产生的原因及其危害,如电机发热、振动增加等问题。随后逐步讲解了如何使用Simulink中的各个模块(如PMSM模块、Universal Bridge、PI Controller、FFT模块等),并通过协调这些模块实现了谐波的有效抑制。此外,还探讨了谐波提取、谐振控制器设计、补偿信号发生器的设计细节,以及如何应对转速突变工况下的挑战。通过实验验证,该模型能够显著降低5次和7次谐波含量,提高电机性能。 适合人群:从事电机控制系统设计的研究人员和技术工程师,尤其是对永磁同步电机谐波抑制感兴趣的读者。 使用场景及目标:适用于需要深入理解和掌握永磁同步电机谐波抑制技术的研发人员,旨在帮助他们构建高效的谐波抑制系统,提升电机运行效率和稳定性。 其他说明:文中提供了详细的Matlab/Simulink代码片段和配置建议,有助于读者快速上手实践。同时,强调了实际应用中的注意事项,如选择合适的求解器、设置合理的参数等,确保仿真的准确性。
内容概要:本文详细介绍了基于T型三电平逆变器的虚拟同步机(VSG)控制技术,涵盖VSG的核心算法、中点电位平衡策略以及LCL滤波器的双闭环控制设计。首先探讨了VSG控制的基本原理,包括虚拟惯量和阻尼特性的模拟,以及有功-频率和无功-电压下垂控制的具体实现。针对T型三电平拓扑特有的中点电位漂移问题,提出了多种平衡控制方法。对于LCL滤波器,讨论了其参数设计和双闭环控制策略,特别是电流环PI参数的选择和避免谐振的方法。文中还提供了多个实用的经验公式和调试技巧,并引用了相关领域的权威文献作为理论支持。 适合人群:从事电力电子、新能源并网系统研究和开发的技术人员,尤其是有一定电力电子基础的研发人员。 使用场景及目标:适用于需要深入了解和掌握VSG控制技术和LCL滤波器设计的研究人员和技术开发者。主要目标是帮助读者理解和实现T型三电平逆变器的VSG控制,提高系统的稳定性和性能。 其他说明:文中不仅提供了详细的理论解释,还有具体的代码实现和调试建议,便于读者进行实际操作和验证。同时强调了调试过程中需要注意的安全事项和常见问题的解决方案。
内容概要:美国大学生数学建模竞赛(MCM/ICM)由美国数学及其应用联合会主办,旨在提高学生运用数学知识和计算机技术解决实际问题的能力,培养团队合作精神和创新思维。竞赛始于1985年,至今已有近40年历史,是全球最具影响力的数学建模竞赛之一。竞赛分为MCM和ICM两部分,涵盖多个领域,参赛队伍需在4天内完成题目的分析、建模、求解和论文撰写。竞赛面向全球在校大学生,设有多个奖项,获奖对学生的升学和就业有积极影响。参赛队伍应提前学习数学建模知识,掌握常用软件工具,如MATLAB、Python等,同时加强团队协作和时间管理能力。; 适合人群:全球范围内的在校大学生,特别是对数学建模感兴趣的学生。; 使用场景及目标:①提高学生运用数学知识和计算机技术解决实际问题的能力;②培养团队合作精神和创新思维;③为升学和就业积累宝贵经验。; 阅读建议:参赛队伍应提前做好充分准备,学习相关数学建模知识,熟悉常用软件工具,加强团队协作和时间管理能力,以应对竞赛的挑战。
电子电力仿真教程 ,15篇,5000字,从入门到精通,案例为主。
汽车横梁拧螺丝设备sw22可编辑_三维3D设计图纸_包括零件图_机械3D图可修改打包下载_三维3D设计图纸_包括零件图_机械3D图可修改打包下载.zip
内容概要:本文详细介绍了基于三电平逆变器的有源电力滤波器(APF)的设计及Matlab/Simulink仿真验证。首先阐述了三电平逆变器的基本原理,包括其拓扑结构和优势。接着讨论了APF的核心功能,即通过检测电网中的谐波电流并生成补偿电流来抵消谐波。文中给出了具体的谐波检测算法和补偿电流生成控制策略,如瞬时无功功率理论和谐波检测算法、SVPWM控制算法等。最后,通过搭建Matlab/Simulink仿真模型,验证了所设计方案的有效性,展示了APF投入前后电网电流谐波含量的显著变化,证明了三电平逆变器在APF中的优越性能。 适合人群:电气工程专业学生、从事电力电子研究的技术人员、对电力系统谐波治理感兴趣的科研工作者。 使用场景及目标:适用于高校教学、企业研发部门和技术培训课程。主要目标是帮助读者掌握三电平逆变器的工作原理、APF的设计思路及其实现方法,同时提供详细的仿真指导,以便于实际工程项目中的应用。 其他说明:文章不仅提供了理论分析,还包括了大量的代码示例和具体的操作步骤,有助于读者更好地理解和实践。此外,文中还指出了仿真过程中常见的几个问题及解决方案,进一步提高了实用性和可靠性。