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;
}
});
Nick Craver a une excellente réponse à une question connexe ici: http://stackoverflow.com/a/3075104/538962 – mg1075