jQuery position()
返回
匹配组中第一个元素的当前坐标 元素,相对于偏移的父元素。
所以,滚动父级是不应该改变位置,对吗?
我在this fiddle中获得的结果是,在将父级滚动100px之后,子元素的position().top
会改变100。
位置()。滚动1880之前的顶部,滚动1780之后
为什么?
答案 0 :(得分:0)
要回答评论中的问题,只需将框的scrollTop添加到锚定元素的位置。
var $box = $('#box'),
$anchored = $('#anchored'),
$debug = $('#debug');
$debug.text('position().top before scroll ' + ($anchored.position().top + $box.scrollTop()));
$box.animate({
scrollTop: 100
}).promise().then(function () {
$debug.text($debug.text() + ', after scroll ' + ($anchored.position().top + $box.scrollTop()));
});