2015-01-25 3 views
1

Я использую setInterval, покажите слайд-шоу, и я хотел бы сразу показать слайд-шоу, как я могу предотвратить задержку с самого начала?Как я могу остановить задержку с setInterval?

Код:

setInterval(
     function() { 
         $("body, #resp-background").css({ 
       'background-image': 'url(' + pics[i] + ')', 
       '-webkit-transition': 'background-image .25s ease-in-out', 
       'transition': 'background-image .25s ease-in-out;', 
       '-moz-transition': 'background-image .25s ease-in-out;', 
       'background-size': 'background-image .25s ease-in-out;', 
       '-o-background-size': 'cover', 
       '-moz-background-size': 'cover', 
       '-webkit-background-size': 'cover' 
      }); 

      $('.s-description').html(descriptions[i]); 
      i++; 
      if (i >= pics.length) i = 0; 

     }, 4200); 

Jsfiddle:

http://jsfiddle.net/kx1fgsox/3/

Спасибо

ответ

0

Как это:

var slider = function() { /*your code here*/ }; 
slider(); //execute immediately 
setInterval(slider, 4200); //start interval loop 
  • также, вы должны инициализировать i быть 0
+0

Теперь работает, спасибо –

0

Или еще чище:

(function loop() { /* do stuff */ })(); 
window.setTimeout(loop, 1000); 

Таким образом, функция автоматического выполняет на инициализации.

+0

цикл не будет определен, если вы сделаете это (что является целью использования http://en.wikipedia.org/wiki/Immediately-invoked_function_expression) – AlexanderBrevig

Смежные вопросы