【发布时间】:2013-09-04 12:00:58
【问题描述】:
我创建了一个水平的元素列表。该列表具有固定宽度并在溢出时滚动。当一个按钮被点击时,一个新元素被添加到这个列表中,我试图将 ul 元素滚动到这个新创建的 li 元素。
这是我正在使用的 JQuery:
var ul = $('ul')
$('button').click(function() {
var li = $('<li></li>');
ul.append(li);
ul.stop().animate({
scrollLeft: li.offset().left
}, 2000);
});
奇怪的是,如果您开始跟踪变量 li.offset().left 在前几个元素中保持几乎相同的值,并且滚动工作正常,直到 li.offset().left 变得小于 ul.scrollLeft() 最大值。
你可以在这里看到这个:http://jsfiddle.net/ePrwZ/16/
似乎发生了什么是li.offset().left 在我需要它相对于父 ul 元素时跟踪相对于文档的位置。但是由于溢出,我不能仅仅减去父母的节日。知道如何计算吗?
注意:我想滚动到特定元素,而不仅仅是 ul 的末尾。
【问题讨论】:
标签: javascript jquery animation scroll