gpt4 book ai didi

javascript - 完成后序列不重置

转载 作者:行者123 更新时间:2023-11-30 14:19:55 26 4
gpt4 key购买 nike

我正在尝试完成一个可以重复用于不同元素的“幻灯片”功能。我在一个包含来 self 的 HTML 文档的段落文本的 div 上测试它,表示为 container1、container2container3。在按钮上的 onclick=""上调用 Clicky()。

let slideshow_divs = ["container1", "container2", "container3"];
for(let i = 1; i < slideshow_divs.length; i++) {
document.getElementById(slideshow_divs[i]).style.display = "none";
}

let current_view = 0

function clicky() {
document.getElementById(slideshow_divs[current_view]).style.display = "none";

current_view = current_view + 1
document.getElementById(slideshow_divs[current_view]).style.display = "block";
}

container3之后,container1和container2设置为display:none;通过container3,返回container1时,依然是display:none;所以这个序列最终只工作一次。

感谢任何帮助。

最佳答案

您需要使用模运算符再次环绕到数组的开头:

current_view = (current_view + 1) % slideshow_divs.length;

为了说明,这里有一张 current_view 值在有和没有模运算符的情况下的进展表:

Without modulo          With modulo
-------------- -----------
0 0
1 1
2 2
3 (OOB) 0
4 (OOB) 1
5 (OOB) 2

如果没有模数,一旦 current_view 达到 3,您就会超出数组边界 (OOB)。

关于javascript - 完成后序列不重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52940305/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com