jquery在不同的背景下循环
我正在尝试为一个div改变不同的背景,使其在一系列图像中循环,并每5秒计时一次 这是我的密码:jquery在不同的背景下循环,jquery,loops,background,Jquery,Loops,Background,我正在尝试为一个div改变不同的背景,使其在一系列图像中循环,并每5秒计时一次 这是我的密码: function changeBG(){ //array of backgrounds var array = ["test.jpg", "test2.jpg", "test3.jpg",]; for ( var i=0, len=array.length; i<len; ++i){ $('.round-mask').css('backgro
function changeBG(){
//array of backgrounds
var array = ["test.jpg", "test2.jpg", "test3.jpg",];
for ( var i=0, len=array.length; i<len; ++i){
$('.round-mask').css('background-image', 'url("images/work/'+array[i]+'")');
}
}
window.setInterval(changeBG(), 5000);
函数更改bg(){
//背景阵列
var数组=[“test.jpg”、“test2.jpg”、“test3.jpg”,];
对于(var i=0,len=array.length;i请重试~
var现在=0;
var int=self.setInterval(“changeBG()”,1000);
var数组=[“001.jpg”、“002.jpg”、“003.jpg”,];
函数changeBG(){
//背景阵列
now=(now+1)%array.length;
$('.round mask').css('background-image','url('+array[now]+'));
}
忘了这件事吧~
for ( var i=0; i<array.length; i++){
$('.round-mask').css('background-image', 'url("images/work/'+array[i]+'")');
}
for(var i=0;i试试这个
var i =0 ;
//array of backgrounds
var array = ["test.jpg", "test2.jpg", "test3.jpg"];
function changeBG(){
if ( i > array.length -1) {
i = 0;
}
$('.round-mask').css('background-image', 'url("images/work/'+array[i]+'")');
i++;
}
window.setInterval(changeBG(), 5000);
像这样的方法应该会奏效:
var i = 0;
function changeBG(){
//array of backgrounds
var array = ["test.jpg", "test2.jpg", "test3.jpg",];
$('.round-mask').css('background-image', 'url("images/work/'+array[i]+'")');
if(i == array.length -1){
i= 0;
}
else{
i++;
}
}
这真的很有效。2014年
var i =0 ;
//array of backgrounds
var array = [
"1.jpg",
"2.jpg",
"3.jpg",
"4.jpg",
"5.jpg",
"6.jpg",
"7.jpg",
];
function changeBG(){
if ( i > array.length -1) {
i = 0;
}
$('.slideContainer').css('background-image', 'url("img/backgrounds/'+array[i]+'")');
i++;
}
window.setInterval("changeBG()", 5000);
for循环在数组中循环,并在每次循环时用新的背景图像替换背景图像,使最后一个图像始终出现。不要使用%3,请使用%array.length,谢谢,这是我的错误:)注意如何调用setInterval
您应该向它传递一个对函数的引用,一个回调
当您仅传递函数时,它将简单地运行该函数。如果您将其作为回调传递changeBG
,它将在每个间隔运行该函数。它可以工作,但它循环4次而不是3次,第4次返回“未定义”@Mauro74确保去掉数组中的尾随逗号;@Patricia谢谢!@Mauro74您做了什么确定数组中没有尾随逗号吗?是的,这将断为.b/c数组。长度为3。因此,如果i=3,它将尝试获取第四个元素,b/c数组为0索引。因此,需要检查数组。长度-1:)确实解决了for循环问题,但没有解决使值现在为“0,1,2,0,1,0,1,2,…”的总体问题:)那么当数组中有3个以上的项目时会发生什么呢?同样,不,它不算数组的长度!我一直给你正确的答案ago@mcgrailm:哈哈~你说得对,这是我的错,我们应该使用array.length如果你的数组中有三个以上的项,那么这个将被破坏。如果(i==2),你应该更改if
toif(i==array.length)
否则,如果数组中的图像多于3个,它将只显示前3个。@scoobler不,实际上,它应该是array.length-1。array.length将失败。b/c数组索引是基于零的。我想,如果(i==(array.length-1))它实际上应该是if(i==(array.length-1))
它是基于array.PS+1的零基索引,非常接近。如果我们想获得真正的技术性,我们应该将array.length-1放入一个变量中并使用它,这样它就不必在每个变量上查找它
var i =0 ;
//array of backgrounds
var array = [
"1.jpg",
"2.jpg",
"3.jpg",
"4.jpg",
"5.jpg",
"6.jpg",
"7.jpg",
];
function changeBG(){
if ( i > array.length -1) {
i = 0;
}
$('.slideContainer').css('background-image', 'url("img/backgrounds/'+array[i]+'")');
i++;
}
window.setInterval("changeBG()", 5000);
$(element).on("click",function(){
$("<div>").css("background-image", "url("+array[(i-1)]+")");
if (i == array.length){
i=1;
}
else {
i++;
}
})
$(element).css("background-image", "url("+array[(i-1)]+")");
i == bb.length ? i=1 : i++;