2010-04-21 4 views
1

Comment puis-je définir plusieurs délais?
pls m'aider ...Plugin de cycle jQuery

timeout:'1000, 2000, 3000' cela ne fonctionne pas. Au lieu d'utiliser la propriété timeout, vous devez utiliser timeoutFn et définir une fonction qui renvoie le nombre de millisecondes à attendre pour la diapositive suivante au lieu d'utiliser la propriété

+0

Nick Craver a une excellente réponse à une question connexe ici: http://stackoverflow.com/a/3075104/538962 – mg1075

Répondre

2

Par exemple, si vous avez seulement 3 diapositives et que vous voulez les 3 délais que vous avez utilisés (1000, 2000, 3000), alors je suppose qu'après le dernier délai, vous utilisez à nouveau le premier délai (chaque image a le temps de rester À l'écran). Donc, dans ce cas, le code serait tout simplement:

$('#s1').cycle({ 
    timeoutFn: function (curr, next, opts, isForward) { 
     return (opts.currSlide + 1) * 1000; 
    } 
}); 

D'autre part, si vous voulez définir plus de 3 diapositives, vous pouvez utiliser vos propres propriétés (comme un tableau et un compteur) et de les utiliser l'intérieur de la fonction pour calculer le délai d'attente correspondant:

$('#s1').cycle({ 
    timeoutFn: function(currElement, nextElement, opts, isForward) { 
     opts.myTimeoutCount = (opts.myTimeoutCount + 1) % opts.myTimeouts.length; 
     return opts.myTimeouts[opts.myTimeoutCount]; 
    }, 
    myTimeouts: [1000, 2000, 3000], 
    myTimeoutCount: 0 
}); 

Et enfin, si vous ne voulez pas montrer tout autre diapositive après le dernier délai, alors vous devriez simplement utiliser les autostop & autostopCount propriétés:

$('#s1').cycle({ 
    autostop: true, 
    autostopCount: 3, 
    timeoutFn: function (curr, next, opts, isForward) { 
     return (opts.currSlide + 1) * 1000; 
    } 
});