我想让图像每秒都改变一次。我在使用setInterval时遇到了麻烦。有人可以发布一个关于如何做到这一点的快速片段
这就是我想出来的。
var images = 'images/image_*.png';
for(var i = 1; i <= 5; i++){
function changeImg(){
var path = images.replace('*', i);
$('img').attr('src', path);
}
setInterval('changeImg()', 1000);
}
答案 0 :(得分:3)
在您的代码中,您调用setInterval函数5次,这实际上是不必要的。此外,由于循环将执行一次,i
的值将始终为5,因此它将无法按预期工作。您可以尝试这样做:
var images = 'images/image_*.png';
var i = 1;
setInterval(function() {
var path = images.replace('*', i);
$('img').attr('src', path);
i = i + 1;
if (i == 6) i = 1;
}, 1000);
答案 1 :(得分:2)
您的循环仍在继续,无需等待。试着这样写:
var images = 'images/image_*.png',
i = 1;
function changeImg(){
var path = images.replace('*', i);
$('img').attr('src', path);
i = (i == 5 ? 0 : i + 1);
}
window.setInterval(changeImg, 1000);
答案 2 :(得分:-1)
var images = 'images/image_*.png';
var i = 1;
function changeImg(i){
var path = images.replace('*', i);
$('img').attr('src', path);
}
setInterval('changeImg('+ ( (i++)%6 ) +')', 1000);
也许是这样的?我没试过它。