我使用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)将显示在顶部默认情况下,如何以编程方式进行下拉滚动,直到该元素位于顶部?
答案 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);
})