我有一个我希望以幻灯片形式迭代的图像列表。我已经设置了一个基本功能来显示图像,然后使用setTimeout
来调用该功能并移动到下一个图像。
该功能仅被调用一次并仅显示一个图像。我检查了setTimeout
的语法我确定它是正确的。我的代码中是否存在导致此问题的错误?
<img id='screenImg' src='' height='300' width='450'/>
function slideshow() {
var screenImg = document.getElementById('screenImg');
var gradImg = ['images/grad1.jpg', 'images/grad2.jpg', 'images/grad3.jpg', 'images/grad4.jpg', 'images/grad5.jpg', 'images/grad6.jpg',];
var gradAmt = gradImg.length-1;
var i = 0;
if( i > gradAmt ) {
i = 0;
}
screenImg.src = gradImg[i];
i++;
var timer = setTimeout(slideshow, 1000);
}
slideshow();
答案 0 :(得分:3)
每次调用i
时,您都会将0
重置为slideshow
。
移动var i = 0;
使其不在函数范围内。
由于它不再是函数的本地函数,请考虑给它一个更明确的名称,例如slideshow_index