我正在使用JavaScript创建一个简单的图像幻灯片,但是当我遍历所有图像时,我无法重置循环:
var images = document.querySelectorAll(".slide-img");
var index = 0;
var time = 1000;
function reset(){
for(var i = 0; i <= 3; i++){
images[i].style.display = 'none';
images[0].style.display = 'block';
}
}
reset();
var looper = setInterval(function(){
index++;
images[index].style.display = 'block';
if(index == 3){
index = 0;
images[index].style.display = 'block';
//or calling reset() again.
}
}, 1000);
设置除第一个之外的所有图像display:none
后,我尝试调用setInterval
来循环我的所有图像,但是当索引为3时会出现问题。我正在调用reset()
功能,它不工作?
答案 0 :(得分:0)
您的代码存在一些问题。
请参阅下面的示例。
var images = document.querySelectorAll(".slide-img");
var index = 0;
var time = 1000;
function reset(){
index = 0;
images[0].style.display = 'block';
for(var i = 1; i < images.length; i++){
images[i].style.display = 'none';
}
}
reset();
setInterval(function(){
index++;
if(index >= images.length){
reset();
} else {
images[index].style.display = 'block';
}
}, 1000);
&#13;
.container {
display: flex;
}
.slide-img {
width: 100px;
height: 100px;
}
&#13;
<div class="container">
<div class="slide-img" style="background: red"></div>
<div class="slide-img" style="background: blue"></div>
<div class="slide-img" style="background: green"></div>
<div class="slide-img" style="background: purple"></div>
</div>
&#13;
如果您对我的代码与您的代码有何不同有其他疑问,请在评论中提问。但我认为代码应该清晰易懂。