javascript - 将列表向上/向下滚动到 div
问题描述
我有一个列出数字的无序列表。之后,我有一个带有左右箭头的 div 标签,以指示当前选择的数字。我已经尝试了以下代码,但它不起作用。
我的要求是,无论何时单击任何数字,列表都应缓慢向上/向下滚动到 div 的位置id="icon"
。我该如何实施?
$('ul li').click(function() {
alert("dfd");
$('html, body').animate({
scrollTop: $("#icon").offset().top
}, 2000);
})
ul {
list-style: none;
}
span {
position: fixed;
top: 50px;
left: 35px
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
<span id="icon">< ></span>
解决方案
不要为 HTML/BODY 设置动画,而是尝试为 UL 设置动画,如下例所示。
$('ul li').click(function(){
var index=$(this).index();
var listPosition = -1*index*50;
$('ul').animate({
top: listPosition
}, 600);
})
ul {
list-style:none;
position: fixed;
margin-top: 100px;
}
li{
height: 50px;
line-height: 50px;
}
span{
position:fixed;
top:0;
left:35px;
height: 50px;
line-height: 50px;
margin-top:100px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
<span id="icon"> < > </span>
推荐阅读
- javascript - 如何从 Firebase 获取 Flatlist 中每个元素的数据?
- cypress - 如何在 cypress.io 中使用多个登录名、URL 和正文元素运行相同的测试
- python - 程序旨在用向量绘制图形,但输出返回:“TypeError: 'int' object is not subscriptable” for last plt.arrow()
- java - 在 macOS 中设置 JAVA_HOME
- pyramid - 金字塔网络框架中可能存在的奇怪错误
- binary - 绘制这些 3 行 1 和 0 列的 NFA 和 DFA
- autohotkey - 添加热键以专注于具有相同标题的特定窗口的方法?
- pine-script - 最高收盘价 pinescript tradingview
- python - 在 JupyterLab 启动脚本中设置 HoloViews 后端
- elasticsearch - 我们如何在 Elasticsearch 查询中使用 regexp 或 filter 属性应用排除?