【发布时间】:2020-07-17 03:22:41
【问题描述】:
我有这个第 3 方水平自动滚动脚本,它可以滚动数字序列供学生练习计数,并且我已经成功地拼凑了几个改变数字序列的文本链接,这已经突破了我的 JS 能力的极限。我想完成/解决三件事:
-
一个基本的问题是,无论滚动发生在哪里,新数字都会被激活,而不会中断滚动,如果它停止了(因为初始滚动事件已经完成),那么就是这样,什么都没有。每当单击这些文本链接之一以更改数字时,我都需要重置并重新激活滚动。这是我需要解决的最重要的事情。
-
如您所见,我有两个单独的脚本来适应调用的两个更改。我不明白如何组合这些功能。
-
我非常想创建一组调整速度的 +/- 按钮。需要影响的相关代码是主脚本末尾的那个数字 17。
非常感谢,非常感谢!这是代码,它经过简化,基本上运行良好。
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<style>
body {
padding: 40px;
font-size: 30px;
line-height: 2em;
}
.container {
width: 150px;
overflow-x: scroll;
white-space: nowrap;
word-spacing: 30px;
}
</style>
</head>
<body>
<div class="container" id="flavoursContainer">
<div id="the-numbers">1 2 3 4 5 6 7 8 9 10 11 12 13 14 15</div>
</div>
<div onclick="myFunction()">Change</div>
<div onclick="test()">Change again</div>
<script>
const flavoursContainer = document.getElementById("flavoursContainer")
const flavoursScrollWidth = flavoursContainer.scrollWidth
window.addEventListener("load", () => {
self.setInterval(() => {
if (flavoursContainer.scrollLeft !== flavoursScrollWidth) {
flavoursContainer.scrollTo(flavoursContainer.scrollLeft + 1, 0);
}
}, 17);
})
</script>
<script>
function myFunction() {
document.getElementById("the-numbers").innerHTML = "25 50 75 100 125 150 175 200";
}
</script>
<script>
function test() {
document.getElementById("the-numbers").innerHTML = "11 21 31 41 51 61 71 81 91 101";
}
</script>
</body>
</html>
【问题讨论】:
标签: javascript scroll autoscroll