用于将元素定位到指定的页面绝对坐标处。深刻理解relative,absolute 的区别 ,与 offsetParent 的关系
setXY
( Array pos
, [Boolean/Object animate
]
) : Ext.Element
Sets the position of the element in page coordinates,
regardless of how the element is positioned. The element must b...
Sets the position of the element in page coordinates, regardless
of how the element is positioned. The element must be part of the DOM tree to
have page coordinates (display:none or elements not appended return false).
Parameters:
-
pos
: Array
Contains X & Y [x, y] values for new position
(coordinates are page-based)
-
animate
: Boolean/Object
(optional) True for the default animation, or a standard
Element animation config object
Returns:
setXY: function (el, xy) {
el = Ext.fly(el, '_setXY');
// 如果当前元素没有被定位, 将当前元素 相对定位(relative),这样才能用 top left 移动才元素
//这一句后,当前元素只能为 relative 或者 absolute (fixed 暂不考虑)
el.position();
//主要函数,
//如果当前元素为 absolute 得到当前元素相对于它已定位父亲的 top left 值
//如果当前元素为 relative 得到和当前元素位置的偏移量,与它已定位父亲无关
var pts = el.translatePoints(xy);
//根据得到的值,设置
if (xy[0] !== false) {
el.dom.style.left = pts.left + "px";
}
if (xy[1] !== false) {
el.dom.style.top = pts.top + "px";
}
}
重点就是 translatePoints
原理:
1.当前元素定位relative :得到和现在位置的差值即可,就是相对定位的定义。
2.当前元素为 absolute,根据绝对定位的定义,需要得到当前元素相对于它已定位父亲的 top left 值
translatePoints: function (x, y) {
if (typeof x == 'object' || Ext.isArray(x)) {
y = x[1];
x = x[0];
}
var p = this.getStyle('position');
//得到 未移动前 元素在页面上的绝对坐标
var o = this.getXY();
//对于绝对定位 :得到相对于已定位父亲的 差值
//对于相对定位:取得该元素原先的偏移量
// ff 若没有 手动 设置 则返回 当前计算得到的数值
//ie 若没有手动设置 ,则返回 auto
var l = parseInt(this.getStyle('left'), 10);
var t = parseInt(this.getStyle('top'), 10);
//如果 没有设置 ,
//对于 绝对定位需要得到和已定位祖先的差值,则取 this.dom.offsetLeft
//对于相对定位 则证明和原先位置无偏移,取0,为了下面计算公式统一
if (isNaN(l)) {
l = (p == "relative") ? 0 : this.dom.offsetLeft;
}
if (isNaN(t)) {
t = (p == "relative") ? 0 : this.dom.offsetTop;
}
//对于绝对定位:o[0]-l 为 已定位的父亲节点 的 页面绝对坐标, x-(o[0]-l) 即为 相对于 已定位的父亲节点 的 相对坐标
//对于相对定位 :o[0]-l 为 当前元素没有偏移时的位置,x-(o[0]-l) 是 为了使元素达到 x,y绝对坐标 ,需要偏移原来位置的数值
return {
left: (x - o[0] + l),
top: (y - o[1] + t)
};
}
于是就实现了将元素移到了指定的页面绝对坐标。
1.对于当前元素没有定位的情况(首先设置为相对定位)或相对定位的情况:
就是要计算出要达到的目的位置和当前位置的差值,然后设置left top css
2.对于当前元素绝对定位的情况:
实际上 就是设置了合适的 相对于 他已定位父亲元素的 left top css值
注意 :
top left 只有在 postion 为 relative absolute 是才起作用,且都是相对于它的祖先节点(postion 为 relative absolute的祖先节点),偏移 top left 的。
注意2:
此方法当绝对定位元素没有设置初始left,top时,ie下会有bug :

- 大小: 15.1 KB
分享到:
相关推荐
### 对Ext库的总体概述与常见程序任务解析 #### 一、Ext库简介 Ext库是一种功能强大的JavaScript框架,主要用于创建交互式的Web应用程序。它提供了一系列丰富的UI组件和工具,帮助开发者快速构建出高质量的前端界面...
毕业论文- 深蓝健身房瑜伽馆行业小程序V4.15.0 前端+后端-整站商业源码.zip
36氪:2019中国开放式创新观察.pdf
毕业论文-化妆品商城-整站商业源码.zip
毕业论文-MNews2.4-整站商业源码.zip
X-AnyLabeling自动标注模型
【鼎软天下】科技赋能物流,数字驱动变革.pdf
实训商业源码-王中王掌上游戏机网页源码,怀旧小游戏-毕业设计.zip
内容概要:本文提出了一种基于强化学习(RL)的前向纠错(FEC)调整方法——R-FEC,旨在优化WebRTC视频会议中的用户体验质量(QoE)。传统方法在确定适当的FEC比例时面临挑战,因为过高的FEC会增加延迟并降低视频质量,而过低则无法有效应对丢包。R-FEC通过RL算法动态调整视频和FEC比特率,在不同的网络条件下最大化QoE,同时最小化网络拥塞。实验表明,R-FEC相比现有最佳解决方案可提高视频速率达27%,并改善视频质量6dB。 适合人群:对视频会议系统优化、网络通信协议、机器学习特别是强化学习有兴趣的研究人员和技术人员。 使用场景及目标:①需要在视频会议中实现实时通信的应用开发者;②希望提升视频通话质量、减少延迟的技术团队;③研究如何在动态网络环境中优化数据传输的研究机构。 其他说明:R-FEC不仅解决了现有方法中FEC设置不合理的问题,还展示了在实际网络环境下显著优于其他方法的表现。此外,作者指出未来工作将扩展到多方通话场景,并考虑更多复杂的网络条件。该研究得到了Cisco Systems和韩国国家研究基金会的支持。
内容概要:本文介绍了流量整形(Traffic Shaping)与增强传输选择(Enhanced Transmission Selection, ETS)技术在多虚拟函数(VFs)共享单个物理网络接口控制器(NIC)端口情况下的应用。流量整形通过对数据发送速率进行限制来管理网络流量,确保节点不会超过设定的最大带宽,同时保证最小带宽。ETS是IEEE 802.1Qaz标准的一部分,旨在数据中心桥接环境中为不同类型的流量分配带宽。文章详细描述了在多VF组中实现每类流量带宽保证的技术挑战和解决方案,包括使用令牌桶算法、加权循环调度(DWRR)、多队列优先级(MQPRIO)以及信任模式(Trust Mode)进行流量分类。此外,还探讨了如何通过扩展devlink-rate工具指定每个流量类别的带宽比例。 适合人群:网络工程师、系统管理员、云服务提供商以及对网络流量管理和优化感兴趣的IT专业人员。 使用场景及目标:①理解流量整形的基本概念及其在网络通信中的作用;②掌握如何配置虚拟功能(VF)以实现对特定流量类别的带宽控制;③学习如何利用ETS机制确保关键业务获得足够的网络资源;④了解最新的devlink-rate扩展功能及其在实际部署中的应用。 其他说明:本文基于Netdev 0x19会议上的演讲整理而成,提供了从背景介绍到具体实施步骤的全面讲解,并附有详细的参考资料链接供进一步研究。
实训商业源码-自适应极简多引擎搜索源码-毕业设计.zip
该源码库为LilyGo T_QT开发板量身定制,专注于物联网通信功能,包含1792个文件,涵盖512个头文件、448个C语言源文件、213个Arduino脚本文件、151个Python脚本、139个Markdown文档、63个PNG图片文件、55个reStructuredText文件、38个Vera Lite Widget文件、18个文本文件、18个C++源文件。语言多样,支持C、C++、Python、C++、Shell、HTML、CSS和Ruby。库内容丰富,是进行物联网通信开发不可或缺的资源。
学生心理健康服务平台是一个集心理咨询、心理测评、资源共享和社区互动于一体的综合服务平台,包含Web/移动端应用和管理后台两部分。该项目旨在为高校学生提供便捷、专业的心理健康服务,帮助学生缓解心理压力,促进心理健康发展。
毕业论文-二次元应用下载页源码 带弹幕-整站商业源码.zip
实训商业源码-影视资源站源码 电脑+手机模板-毕业设计.zip
Baidunetdisk_AndroidPhone_1023843j (6).apk
《Creo Simulation Live》数据表.pdf
实训商业源码-源授权V1.5-毕业设计.zip
实训商业源码-微信淘宝客5.99.78 加密-毕业设计.zip
毕业论文-红包拓客生意宝 2.0.2-整站商业源码.zip