Javascript 如何通过setInterval设置div元素的图像背景?

Javascript 如何通过setInterval设置div元素的图像背景?,javascript,jquery,html,css,json,Javascript,Jquery,Html,Css,Json,我为数组实现了一个迭代器,但我需要将array[I]作为div元素的背景图像。我的迭代过程完成,但背景图像不工作。有专家能解决这个问题吗 //var imgobj=['https://www.w3.org/html/logo/downloads/HTML5_Logo_512.png','https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcTWOZVcvYs5dunAY_vSMxvFNKOvLWbn3RkHUM8SEU1cci9kNJEG'

我为数组实现了一个迭代器,但我需要将
array[I]
作为div元素的背景图像。我的迭代过程完成,但背景图像不工作。有专家能解决这个问题吗

//var imgobj=['https://www.w3.org/html/logo/downloads/HTML5_Logo_512.png','https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcTWOZVcvYs5dunAY_vSMxvFNKOvLWbn3RkHUM8SEU1cci9kNJEG','http://www.adservio.fr/img/logos2/jquery.jpg','https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcSKaIDe-P2BzZgWQLEOBo-LOTQDUYPMBARKH0xCNG64FOTSM9E9A','http://www.unixstickers.com/image/data/stickers/python/python.sh.png'];
变量imgobj1=['IMG1','IMG2','IMG3','IMG4','IMG5'];
var i=0;
函数iterate(){
setInterval(函数(){
$('.frame div').html(imgobj1[i]);
//$('.frame div').css({'background',imgobj[i]});
我++
}, 2000);
}
$(文档).ready(函数(){
迭代();
setInterval(函数(){
i=0;
}, 10000);
});
.frame div{
宽度:300px;
高度:300px;
边框:1px实心#c1dbff;
}

您的代码的问题是设置背景图像的语法不正确。您需要使用
来分隔对象中的键/值对。或者,您可以删除大括号并将值作为单独的参数提供。图像URL还应使用
URL()
包装

此外,您还可以通过使用模运算符在阵列中循环来简化逻辑,而不是每10秒将
i
重置为
0
,这充其量是不可靠的。请尝试以下方法:

var imgobj=['https://www.w3.org/html/logo/downloads/HTML5_Logo_512.png', 'https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcTWOZVcvYs5dunAY_vSMxvFNKOvLWbn3RkHUM8SEU1cci9kNJEG', 'http://www.adservio.fr/img/logos2/jquery.jpg', 'https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcSKaIDe-P2BzZgWQLEOBo-LOTQDUYPMBARKH0xCNG64FOTSM9E9A','http://www.unixstickers.com/image/data/stickers/python/python.sh.png'];
var i=0;
函数iterate(){
$('.frame div').css('background-image','url('+imgobj[i%imgobj.length]+'));
i++;
}
$(文档).ready(函数(){
迭代();
setInterval(迭代,2000年);
});
.frame div{
宽度:300px;
高度:300px;
边框:1px实心#c1dbff;
背景尺寸:包含;
}

正如Rory McCrossan所说,您的
背景图像
css语法无效。您不需要使用两个
设置间隔
s,这必须通过分配给变量来控制。 这有助于在需要时停止迭代

var imgobj=['https://www.w3.org/html/logo/downloads/HTML5_Logo_512.png','https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcTWOZVcvYs5dunAY_vSMxvFNKOvLWbn3RkHUM8SEU1cci9kNJEG','http://www.adservio.fr/img/logos2/jquery.jpg','https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcSKaIDe-P2BzZgWQLEOBo-LOTQDUYPMBARKH0xCNG64FOTSM9E9A','http://www.unixstickers.com/image/data/stickers/python/python.sh.png'];
变量imgobj1=['IMG1','IMG2','IMG3','IMG4','IMG5'];
var i=0;
var区间;
函数iterate(){
间隔=设置间隔(函数(){
//$('.frame div').html(imgobj[i]);
$('.frame div').css({'background':'url('+imgobj[i]+'))});
i=i>=imgobj.length?0:i+1;
}, 2000);
}
$(文档).ready(函数(){
迭代();
//停止迭代
//清除间隔(间隔)
});
.frame div{
宽度:300px;
高度:300px;
边框:1px实心#c1dbff;
}


如果您提供正确的图像URL,它将在一个imgobj=[----]数组中工作;我已经提供了正确的URLimgobj[I%imgobj.length]您能解释一下这种语法吗我对这种类型的脚本是新的吗