获得元素的绝对坐标

研究dhtmlx的combo组件,学习到获得元素的绝对坐标的方法

dhtmlXCombo.prototype.getPosition = function(oNode, pNode) {

if (!pNode)
var pNode = document.body

var oCurrentNode = oNode;
var iLeft = 0;
var iTop = 0;
while ((oCurrentNode) && (oCurrentNode != pNode)) {// .tagName!="BODY"){
iLeft += oCurrentNode.offsetLeft - oCurrentNode.scrollLeft;
iTop += oCurrentNode.offsetTop - oCurrentNode.scrollTop;
oCurrentNode = oCurrentNode.offsetParent;// isIE()?:oCurrentNode.parentNode;
}
if (pNode == document.body) {
if (_isIE) {
if (document.documentElement.scrollTop)
iTop += document.documentElement.scrollTop;
if (document.documentElement.scrollLeft)
iLeft += document.documentElement.scrollLeft;
} else if (!_isFF) {
iLeft += document.body.offsetLeft;
iTop += document.body.offsetTop;
}
}
return new Array(iLeft, iTop);
}


转载自[url]http://www.cnblogs.com/treeyh/archive/2007/12/06/985005.html[/url]

方法1:

function getAbsPoint(e)
{
var x = e.offsetLeft, y = e.offsetTop;
while(e=e.offsetParent)
{
x += e.offsetLeft;
y += e.offsetTop;
}
alert("x:"+x+","+"y:"+y);
}
方法2:

function getAbsPoint(obj)
{
var x,y;
oRect = obj.getBoundingClientRect();
x=oRect.left
y=oRect.top
alert("("+x+","+y+")")
}

JS中获得窗口属性的方法

1。获得屏幕的分辨率:
screen.width
screen.height

2。获得窗口大小:
document.body.clientWidth
document.body.clientHeight

3。获得窗口大小(包含Border、Scroll等元素)
document.body.offsetWidth
document.body.offsetHeight

另一种方法获得页面元素的坐标:
[url]http://yexj00.5dm.cn/article.asp?id=120[/url]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值