Jquery循环延迟页面上的多个元素?

时间:2011-02-16 16:22:50

标签: jquery cycle delay sequential

我搜索了stackoverflow(和谷歌),我无法通过jquery循环找到解决我的困境的答案。

我在页面上有3个div(divA,divB,divC),每个div都有多个图像,用于jQuery Cycle插件。我想要的结果是暂停4秒,然后第一张图像循环(800毫秒更改时间),然后是第二张,接着是第三张。此时,所有内容都会暂停4秒钟,然后它们会再次顺序更改。

这就是目标。我尝试将它们全部放在超时上并延迟启动它们,但是浏览器中的任何打嗝都会导致它们很容易失去同步。我到目前为止最接近的是:

$.fn.cycle.defaults.speed   = 800;
$.fn.cycle.defaults.timeout = 0;
function runA() { 
 $('#divA').cycle({timeout: 4000,after:runB});
}
function runB() { 
 $('#divB').cycle('next');
}

对于前两个div,这肯定有效并保持同步。但在这一点上,我不知道如何等待divB上的循环完成然后手动循环divC。似乎循环插件不允许我同时调用字符串'next'并在选项中设置延迟。

我试过了

$('#divB').cycle('next').delay(800).siblings('#divC').cycle('next');

但是divB和divC同时触发了循环。我也试过了空闲插件,但divB和divC上的循环仍在同一时间触发。

对此的任何帮助将不胜感激。如果之前已经回答过这个问题,请指出我的方向。我找不到它。

1 个答案:

答案 0 :(得分:0)

.delay()仅适用于在FX队列中排队的函数。为了将任何函数与.delay()结合使用,您可以执行类似于此处所述的操作:http://blog.project-sierra.de/archives/1559