html - 默认情况下如何将滚动设置为下拉列表的顶部
问题描述
我需要将下拉菜单的滚动设置为始终单击下拉菜单的顶部。
<div class="dropdown">
<button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown"
id="button1">Dropdown Example
<span class="caret"></span></button>
<ul class="dropdown-menu" style="max-height: 100px; overflow-y: scroll;">
<li><a href="#">HTML</a></li>
<li><a href="#">CSS</a></li>
<li><a href="#">JavaScript</a></li>
<li><a href="#">HTML</a></li>
<li><a href="#">CSS</a></li>
<li><a href="#">JavaScript</a></li>
<li><a href="#">HTML</a></li>
<li><a href="#">CSS</a></li>
<li><a href="#">JavaScript</a></li>
<li><a href="#">HTML</a></li>
<li><a href="#">CSS</a></li>
<li><a href="#">JavaScript</a></li>
<li><a href="#">HTML</a></li>
<li><a href="#">CSS</a></li>
<li><a href="#">JavaScript</a></li>
<li><a href="#">HTML</a></li>
<li><a href="#">CSS</a></li>
<li><a href="#">JavaScript</a></li>
</ul>
</div>
<script>
$(document).ready(function(){
$("#button1").click(function(){
$('#button1').scrollTop(0);
});
});
</script>
我的小提琴:https ://codepen.io/developer52/pen/GRmzEmB
我正在尝试使用 jquery,因为它无法使用 CSS。
任何帮助将非常感激。
解决方案
下面的 jquery 应该可以工作。我们将捕获shown.bs.dropdown
打开下拉菜单时触发的事件,然后滚动到下拉列表末尾。
$(document).ready(function() {
$('html,body').on('shown.bs.dropdown', function(obj) {
$('#drop').animate({scrollTop: $('#drop')[0].scrollHeight}, 1000)
})
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet"/>
<div class="dropdown">
<button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown" id="button1">
Dropdown Example
<span class="caret"></span>
</button>
<ul class="dropdown-menu" style="max-height: 100px; overflow-y: scroll;" id="drop">
<li><a href="#">HTML</a></li>
<li><a href="#">CSS</a></li>
<li><a href="#">JavaScript</a></li>
<li><a href="#">HTML</a></li>
<li><a href="#">CSS</a></li>
<li><a href="#">JavaScript</a></li>
<li><a href="#">HTML</a></li>
<li><a href="#">CSS</a></li>
<li><a href="#">JavaScript</a></li>
<li><a href="#">HTML</a></li>
<li><a href="#">CSS</a></li>
<li><a href="#">JavaScript</a></li>
<li><a href="#">HTML</a></li>
<li><a href="#">CSS</a></li>
<li><a href="#">JavaScript</a></li>
<li><a href="#">HTML</a></li>
<li><a href="#">CSS</a></li>
<li><a href="#">JavaScript</a></li>
</ul>
</div>
推荐阅读
- swift - 如何点击一个控制器中的项目并将其显示在不同的 uicollectionviewcontroller 类中
- react-native - 在反应导航中打开抽屉时如何移动tabBar
- macos - 为什么 anaconda3 安装 python 2.7
- scala - 没有返回或分配的值会发生什么?
- c# - 在不解包任务的情况下返回 ActionResult
- java - Jackson FasterXML 转换为带有命名空间的 POJO
- laravel - Laravel - 聚合结果没有给出正确的结果
- android - 如何从 Firebase 实时数据库中获取数据?
- c++ - begin() 和rend() 有什么区别?
- javascript - 如何将firebase数据库添加到javascript?