在Javascript中更改坐标原点

时间:2011-03-03 17:30:46

标签: javascript coordinates

我怎样才能改变Javascript的起源?例如,如果我在div上调用offsetTop,它确实告诉我它与原点有多远。 Javascript的来源位于页面的左上角,但我该如何移动呢?

我想在左下方进行。

1 个答案:

答案 0 :(得分:1)

您有关offsetTop的信息不正确。来自MDC

  

offsetTop 返回当前元素相对于offsetParent节点顶部的距离。

您无法以您的思维方式“移动”原点,但您可以使用一些数学计算从元素的上边缘到屏幕/页面底部的距离。使用jQuery(为清楚起见,因此代码不会因跨浏览器功能检测而混乱):

var $doc = $(document),
    docHeight = $doc.height(),
    $elt = $('#some-element-id'),
    top = $elt.offset().top,

    // this is the value you're interested in
    originShiftedTop = docHeight - top;

Demo。尝试使用不同的Result窗格高度重新运行小提琴。


请注意,jQuery的.offset()返回元素相对于文档的位置,而不像DOM标准属性element.offsetTop。 jQuery的.position()函数的行为类似于element.offsetTop