如何以编程方式滚动引导程序下拉菜单

时间:2014-04-16 15:48:29

标签: javascript jquery twitter-bootstrap thymeleaf

我使用bootstrap下拉菜单显示了很多年份。 我需要向下滚动列表,以便<li>元素显示在顶部。

<div id="year-picker" class="dropdown dropdown-lg">
    <a href="#" class="dropdown-toggle left" data-toggle="dropdown"><i></i>Year</a>
    <ul class="dropdown-menu">
        <li th:each="year : ${yearsList}"><a href="#" th:text="${year}"></a></li>
    </ul>
</div>

所以当前/默认行为是第一个元素出现在下拉列表的顶部,即2014年。如果我想,让我们说第五个元素(2010)将显示在顶部默认情况下,如何以编程方式进行下拉滚动,直到该元素位于顶部?

1 个答案:

答案 0 :(得分:4)

通常,Bootstrap下拉列表不会滚动,因此我假设您已更改CSS以使用.dropdown进行overflow-x滚动并设置特定高度。

如果是这样,你可以做这样的事情......

$('#year-picker').on('shown.bs.dropdown', function () {
  var ele = $(this).find("li>a:contains('2009')");
  var posi = ele.offset().top-ele.innerHeight();
  $('.dropdown-menu').animate({
        scrollTop: posi
    }, 1000);
})

http://bootply.com/130603