我怎样才能改变Javascript的起源?例如,如果我在div上调用offsetTop,它确实告诉我它与原点有多远。 Javascript的来源位于页面的左上角,但我该如何移动呢?
我想在左下方进行。
答案 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
。