为什么位置()。顶部改变,当我滚动父?(Why is position().top changing

2019-10-19 03:28发布

jQuery的position()返回

在匹配的元素,相对于偏移父的第一个元素的当前坐标。

因此,滚动家长不应该改变位置 ,对吧?

我得到的结果这个小提琴是由100像素滚动父之后, position().top的100子元素的变化。

滚动1880前位置()。顶部,滚动1780后

为什么?

Answer 1:

为了回答您的评论的问题,只需添加框的scrollTop的到锚定元素的位置。

http://jsfiddle.net/5xqEL/17/

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()));
});


文章来源: Why is position().top changing when I scroll the parent?