我目前正在学习W3 HTML/CSS教程中关于在一个页面上获取多个幻灯片的内容。教程中有多个幻灯片(手动)或一个自动幻灯片的示例,但没有多个(自动)幻灯片的示例。我尝试将教程合并,记住每个幻灯片的索引都需要保持完整,但无论我做什么,它都不会自动转换。
这是W3教程的链接:https://www.w3schools.com/howto/howto_js_slideshow.asp(https://www.w3schools.com/howto/howto_js_slideshow.asp)
这是我试图更改/使用以自动切换幻灯片的代码:
var slideIndex = [1,1];
/* Class the members of each slideshow group with different CSS classes */
var slideId = ["mySlides1", "mySlides2"]
showSlides(1, 0);
showSlides(1, 1);
function plusSlides(n, no) {
showSlides(slideIndex[no] += n, no);
}
function showSlides(n, no) {
var i;
var x = document.getElementsByClassName(slideId[no]);
if (n > x.length) {slideIndex[no] = 1}
if (n < 1) {slideIndex[no] = x.length}
for (i = 0; i < x.length; i++) {
x[i].style.display = "none";
}
n++; /* WHAT I ADDED */
x[slideIndex[no]-1].style.display = "block";
setTimeout(showSlides(n, x), 2000); /* WHAT I ADDED */
}
代码行旁边的大写注解是我添加到教程代码中的内容。除此之外,代码的其余部分与教程完全相同,没有任何更改。我尝试过setInterval并将代码移动到不同的位置,但没有任何效果。
1条答案
按热度按时间kiz8lqtg1#
只要几个变化,你就在那里了。我还添加了一个选项来改变延迟,看看:
也在JSFiddle上
这里最重要的是Javascript变量的作用域,我建议阅读关于JS Variables的文章,而不是谷歌javascript scope variables,你可能会找到像this one,或that one这样的文章。