0

我想自动滚动到一个元素,但我无法让它滚动,因此#elem 位于#crm_corp_scroll div 的底部。我尝试使用

$j('#crm_corp_scroll').animate({scrollTop: $j('#'+elem).offset().top},'fast');

但它会滚动 div 以使元素位于顶部且不在视野范围内。

我尝试了本机 scrollIntoView ,但它使我滚动到元素的中间。我希望看到完整的元素。

jsFiddle 现在是如何工作的。我希望它滚动,所以第 6 行位于#crm_corp_scroll 的底部。

想出了一个解决方案:

$j('#crm_corp_scroll').animate({scrollTop: ($j('#'+elem).offset().top - $j('#crm_corp_scroll').height() + $j('#'+elem).height() * 2) },'fast');

此滚动元素进入 #crm_corp_scroll div 底部的视图。

4

1 回答 1

1

编辑:

尝试了不同的方法,可以更好地满足您的需求:

http://jsfiddle.net/HLxGM/5/


我在这里改变了你的 jsfiddle

看看它是否按预期工作。

我拿了 row.offset().top - box.height() + (row.height() * 2) ,它似乎按预期工作。

这里有一个更可靠的解决方案

以 row.offset().top - box.offset().top - box.height() + (row.height() * 2) 为例,它在其他地方也可以工作,然后是文档的开头。

于 2012-06-01T07:38:58.633 回答