J'écris un code jQuery plutôt basique pour créer un diaporama à partir d'un ensemble d'images dans un DIV. Le CSS garantit que toutes les images sont empilées les unes sur les autres. Le script regarde l'image active dans l'ensemble, puis déplace l'index z de l'image NEXT vers le haut (via la classe CSS) et l'ajuste de 0.0 opacité. Rincez, répétez. C'est en fait basé sur du code que j'ai trouvé au John Raasch's blog. J'essaie de modifier le code de sorte que lorsque le fondu d'opacité est terminé, il regarde vers le prochain diaporama DIV sur la page, avance d'une image, et continue sur la page jusqu'à ce que tous les DIV ont progressé séquentiellement une image. Ensuite, je voudrais qu'il attende un peu d'intervalle, et recommence.jQuery: Transformer un diaporama d'un DIV en plusieurs DIVs
J'ai essayé produire le code suivant, mais il me brise sur moi, en me disant que target.next est pas une fonction ...
jQuery
$(document).ready(function(){
setInterval("slideSwitch('div:first')", 5000);
});
function slideSwitch(target) {
var nextTarget = target.next();
var active = $(target+' img.active');
if (active.length == 0)
active = $(target+' img:last');
var next = active.next().length ? active.next() : $(target+' img:first');
active.addClass('last');
next.css({opacity: 0.0})
.addClass('active')
.animate({opacity: 1.0}, 500, function() {
active.removeClass('active last');
slideSwitch(nextTarget);
});
};
Jason, merci d'avoir participé! J'ai changé la variable nextTarget comme ceci: var nextTarget = $ (target) .next(); Maintenant j'ai un nouveau problème. Lorsque le JS exécute slideSwitch (nextTarget) dans le rappel .animate, j'obtiens l'erreur suivante dans ma console Firebug: exception non interceptée: erreur de syntaxe, expression non reconnue: [object Object] Des idées? –
Je pense que c'est parce que vous passez maintenant un objet jquery par récursion à votre fonction, donc vous essayez effectivement d'obtenir l'objet jquery d'un objet jquery, donc c'est un peu confus. Si vous passez l'élément ou le cass en tant que cible dans votre fonction d'animation, cela devrait fonctionner car il va définir la cible suivante en fonction de ce que vous l'envoyez. – Jason