Créer un slider continue : Infinite slideshow
Je reprend ici l’excellent tutoriel de Geoffrey Crofte sur la possibilité de créer un slider continu avec très peu de jquery.
Voici le code:
See the Pen jEawPW by yuyazz (@yuyazz) on CodePen.
Pour les explications, je reprends celles très claires de Geoffrey.
« La partie qui suit permet de définir une action qui va se répéter à intervalle régulier. La fonction setInterval() prend en paramètres une fonction anonyme (ou le nom d’une fonction existante), et le délai en milliseconde entre chaque exécution de la fonction. » l’auteur du tuto utilise ici le principe de chaînage, qui permet une économie de code conséquente :
On cible en premier l’ul auquel on va appliquer à une animation pour lui donner une marge négative de 350px en 0,8 secondes (animate(marginLeft:-350, 800)). La fonction animate() permet d’exécuter une fonction de callback, qui s’exécute quand l’animation est terminée. La fonction de callback est à déclarer juste après le paramètre de durée de l’animation.
$(this) représente chacun des « .slide ul" de l'objet jquery.
On supprime la marge appliquée précédemment, on cherche le dernier « li" de notre liste=> (find("li:last")) et on y plaçe juste après=> (after()) le premier slide => ($(this).find("li:first")).
