我搜索了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上的循环仍在同一时间触发。
对此的任何帮助将不胜感激。如果之前已经回答过这个问题,请指出我的方向。我找不到它。
答案 0 :(得分:0)
.delay()仅适用于在FX队列中排队的函数。为了将任何函数与.delay()结合使用,您可以执行类似于此处所述的操作:http://blog.project-sierra.de/archives/1559