jQuery循环播放多个幻灯片,初始延迟?

时间:2014-03-05 19:01:42

标签: javascript jquery jquery-cycle

我有一个带有8个幻灯片的网格横幅,我想连续运行。

我已经完成了所有工作,但出于某种原因,在第一次转换开始之前有一段很长的延迟,我无法弄明白。

这是我到目前为止所尝试的内容

$(document).ready(function(){

var $banner = $('.banner');

var sets = [".r1-c1", ".r2-c4", ".r1-c6", ".r2-c2", ".r1-c5", ".r1-c3", ".r2-c6", ".r2-c1"];

for(var i = 0; i < sets.length; i++){
    $banner.find(sets[i]).cycle({
        'delay' : 1000 * i,
        'speed' : '1000',
        'timeout' : '7000'
    })
}
});

感谢您的帮助,

2 个答案:

答案 0 :(得分:0)

我通过改变方法来解决这个问题。

我没有尝试同时运行幻灯片,而是依靠延迟让它们连续转换,我将所有幻灯片设置为手动激活。

这是我使用的代码。它使用&#34;设置&#34;包含幻灯片集的唯一选择器数组。转换将按给定的顺序进行。

var $banner = $('.banner');
var sets = [".r1-c1", ".r2-c4", ".r1-c6", ".r2-c2", ".r1-c5", ".r1-c3", ".r2-c6", ".r2-c1"];
var current = 0;

// setup slideshows

$.each(sets, function(index,value){
    $banner.find(value).cycle({
        'timeout' : 0,
        'speed' : 1000,
        'skipInitializationCallbacks' : true,
        'after' : onAfter
    });
});

// run after slide transition

function onAfter(){
    $banner.find(sets[current++ % sets.length]).cycle('next');
}

// initiate first slideshow

$banner.find(sets[0]).cycle('next');

答案 1 :(得分:0)

在上面的代码中,您使用了&#39; 1000&#39;和&#39; 7000&#39;分别为速度和超时。

您需要使用数字(例如1000不是&#39; 1000&#39;)。也许它正在谈论时间来翻译&#39; 1000&#39;和&#39; 7000&#39;这导致了最初的延迟。

在上面的代码中替换以下内容:

'speed' : '1000',
'timeout' : '7000'

通过

'speed' : 1000,
'timeout' : 7000