Jquery如何设置间隔

时间:2012-02-02 08:05:26

标签: jquery html

我用jquery制作幻灯片

如何在两个功能之间设置间隔

例如:

$('#slide').css('background-image', 'url(1.jpg)');
//sleep 5000 ms
$('#slide').css('background-image', 'url(2.jpg)');

2 个答案:

答案 0 :(得分:3)

var counter= 0,
        imgs = ['1.jpg', '2.jpg'];

$('#slide').css('background-image', 'url('+ imgs[counter] +')');

setInterval(function(){
   counter++;
   if(counter > imgs.length-1) counter = 0;
   $('#slide').css('background-image', 'url('+ imgs[counter] +')');
}, 1000);

答案 1 :(得分:-2)

您的代码非常低效。在需要再次搜索#slide元素后,您将从DOM获取#slide和一行。获取元素并将其保存在变量中更快:

$('#slide').css('background-image', 'url(1.jpg)').css('background-image', 'url(2.jpg)');

可以通过.delay( time )方法暂停:

$('#slide').css('background-image', 'url(1.jpg)')
           .delay(1000)
           .css('background-image', 'url(2.jpg)'); // 1000 ms = 1 s

感谢Yoshi,.delay仅适用于.animate。所以我尝试了setTimeout

var foo = $('#foo')

foo.css('background', '#c33');

setTimeout( function() {
  foo.css('background', '#33c');
}, 2000); // 2000ms = 1s

实例:http://jsfiddle.net/fmzZ6/