DIV中的长UL列表,自动滚动到LI元素

时间:2014-10-10 12:58:27

标签: javascript jquery html css

我有一个奇怪的问题,我有一个div

_inputHelper // it has fixed height ( 200px )

中包含非常非常长的<ul>列表(大约200个元素),我想使用jQuery滚动到列表中的某些<li>,但问题是,当我滚动时整个列表以这种方式:

$( _inputHelper.find('ul') ).animate( { top : -1 * ( $(_this).position().top - $(_this).height() ) } , 200);
_this is a LI element I would like to scroll to

向下滚动到位,但我无法使用鼠标滚动列表,这里的打印屏幕更精确:

long UL in div auto scroll problem

我想我可能会以错误的方式滚动,但我也尝试过scrollTop / margin-top,它仍然无法正常工作。

一些测试:http://jsfiddle.net/uk5xqfry/3/

任何帮助?

2 个答案:

答案 0 :(得分:5)

根据你的小提琴你需要使用scrollTop,试试这个:

$('.input-helper').animate({
    scrollTop : $("#test").position().top,
}, 200);

检查 Demo Fiddle


在您的代码中,您只是移动ul元素,然后超出父视图;现在,您正在更改父级的滚动。

答案 1 :(得分:0)

我似乎记得曾经有过这个问题,多年前(将内部元素滚动到某一点,而不是将视口滚动到一个元素),我想我用一个jQuery插件解决了它。简单。

https://github.com/flesler/jquery.scrollTo