如何从setInterval中停止延迟?

时间:2015-01-25 01:50:12

标签: javascript jquery

我使用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/

谢谢

2 个答案:

答案 0 :(得分:0)

像这样:

var slider = function() { /*your code here*/ };
slider(); //execute immediately
setInterval(slider, 4200); //start interval loop
  • 另外,您应该将i初始化为0

答案 1 :(得分:0)

甚至更干净:

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

这样,函数auto会在init上执行。