JQuery цикл через разные фоны - PullRequest
3 голосов
/ 12 мая 2011

Я пытаюсь изменить разные фоны для 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('background-image', 'url("images/work/'+array[i]+'")');

      }

}

window.setInterval(changeBG(), 5000);

Это не работаетЯ вижу, что он зацикливается, но я всегда получаю 3-е изображение.

Есть идеи?

Заранее спасибо.

Мауро

Ответы [ 5 ]

7 голосов
/ 12 мая 2011

Пожалуйста, попробуйте ~

    <script  type="text/javascript">
    var now = 0;
    var int = self.setInterval("changeBG()", 1000);
    var array = ["001.jpg", "002.jpg", "003.jpg", ];

    function changeBG(){
        //array of backgrounds
        now = (now+1) % array.length ;
        $('.round-mask').css('background-image', 'url("' + array[now] + '")');
    }
</script>

и забудьте об этом ~

 for ( var i=0; i<array.length; i++){
 $('.round-mask').css('background-image', 'url("images/work/'+array[i]+'")');

  }
2 голосов
/ 12 мая 2011

примерно так должно работать:

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++;
    }


}
0 голосов
/ 14 декабря 2015
$(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++;
0 голосов
/ 08 июля 2014

Это действительно сработало.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);
0 голосов
/ 12 мая 2011

попробуйте это

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...