我有一个图像列表,我想以幻灯片的形式迭代。我已经设置了一个基本函数来显示一个图像,然后使用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(); 发布于 2014-01-30 12:08:43
每次调用i时都会将slideshow重置为0。
移动var i = 0;,使其位于函数之外。
因为它不再是函数的本地名称,所以考虑给它一个更显式的名称,比如slideshow_index
https://stackoverflow.com/questions/21456106
复制相似问题