我查看了所有相关的问题和答案,发现大多数都是不完整的(在这种情况下不起作用),所以我用详细的JSFiddle询问这个具体问题。
我在层次结构的深处有书签锚点,但需要在特定的祖先中计算它们的垂直偏移量,以便平滑滚动到它们。
目前的偏移计算是:
function GetOffset($element, $parent)
{
return {
top: $element.offset().top + $parent.scrollTop(),
left: $element.offset().left + $parent.scrollLeft()
};
}
但滚动在所选元素下方而不是显示它。
我使其余的示例代码尽可能长而且明显。
我更新了小提琴以显示问题是由滚动面板的偏移引起的。这给出了一个不正确的偏移量()。项的最高值,所以我想问题是我对offset()
的理解。
有人可以告诉我如何正确计算偏移量,以便滚动有效吗?最好只调整我的GetOffset()
函数。
答案 0 :(得分:0)
在整理出其他问题后,问题是在添加到容器的scrollTop()时使用offset()而不是position()。
这现在可以正常运行:
function GetOffset($element, $parent) {
return {
top: $element.position().top + $parent.scrollTop(),
left: $element.position().left + $parent.scrollLeft()
};
}