Javascript 如何重新开始循环?
我有一个JSON文件,它存储了一组图片URL。我想通过这些链接旋转,每4秒更改Javascript 如何重新开始循环?,javascript,jquery,Javascript,Jquery,我有一个JSON文件,它存储了一组图片URL。我想通过这些链接旋转,每4秒更改div的背景 访问JSON文件或更改div的背景都没有问题。但是,我似乎不知道如何在每个图片显示后在数组的开头重新启动 我应该如何处理这个问题 $.getJSON(json, function (data) { var arr = $.map(data, function (el) { return el; }) , i = 0; var changeObj = function() {
div
的背景
访问JSON文件或更改div的背景都没有问题。但是,我似乎不知道如何在每个图片显示后在数组的开头重新启动
我应该如何处理这个问题
$.getJSON(json, function (data) {
var arr = $.map(data, function (el) { return el; })
, i = 0;
var changeObj = function() {
i++;
var url = 'url("' + arr[i].url + '")';
$this.css({
backgroundImage: url
});
};
setInterval(changeObj, 4000);
});
这里有一个使用模运算,使其在到达数组末尾时环绕。替换:
i++;
与:
这基本上相当于:
i++;
if (i == arr.length) {
i = 0;
}
顺便说一句,您可以简化setInterval
调用:
setInterval(changeObj, 4000);
假设您已经将
JSON
解析为一个名为myPictureArray
的URL数组,并编写了一个名为swapInNewPicture
的函数,该函数将图像的URL作为其参数。(我不会为您编写这些函数。)
现在,在解析完JSON
之后,只需调用rotatePictures(myPictureArray)
setInterval(changeObj, 4000);
var rotatePictures = function (arr) {
var length = arr.length
, i = 0;
setInterval(function () {
i = (i + 1) % length;
swapInNewPicture(arr[i]);
}, 4000)
}