【发布时间】:2010-06-08 20:09:29
【问题描述】:
我需要计算一个 DOM 对象的 offsetRight。我已经有一些相当简单的代码来获取 offsetLeft,但是没有 javascript offsetRight 属性。如果我添加 offsetLeft 和 offsetWidth,会起作用吗?还是有更好的办法?
function getOffsetLeft(obj)
{
if(obj == null)
return 0;
var offsetLeft = 0;
var tmp = obj;
while(tmp != null)
{
offsetLeft += tmp.offsetLeft;
tmp = tmp.offsetParent;
}
return offsetLeft;
}
function getOffsetRight(obj)
{
if (obj == null)
return 0;
var offsetRight = 0;
var tmp = obj;
while (tmp != null)
{
offsetRight += tmp.offsetLeft + tmp.offsetWidth;
tmp = tmp.offsetParent;
}
return offsetRight;
}
【问题讨论】:
-
你想用“offsetRight”做什么? “left”和“top”存在的原因是窗口(或任何容器框,实际上)的顶部和左侧是固定的;视图框拉伸/收缩(从概念上讲)发生在右侧和底部。
-
我必须在当前对象后面绘制一个 div,而我正在这样做是一种从右到左的语言。我必须知道对象(文本)在右侧结束的位置才能知道 div 右边缘的位置。由于 DOM 中的所有内容都是从左到右工作的,这很令人头疼。
标签: javascript offset