Diaporama automatique et fluide en 10 lignes de code.
Un diaporama/Slideshow automatique et fluide en quelques lignes de codes JavaScript avec la librairie Scriptaculous...

Fonctionne parfaitement, testé sous Safari, Opera 8+, IE6+ et Firefox 1.5+.
Je suis tombé par hasard sur ces bouts de codes permettant de créer un diaporama à défilement automatique et ce de maniére trés fluide, et pour cause, il est basé sur la librairie Scriptaculous.
Premiere solution : Source : Slideshow JS par Code Snippets
- <script type="text/javascript">
- start_slideshow(1, 4, 2000);
- function start_slideshow(start_frame, end_frame, delay) {
- setTimeout(switch_slides(start_frame,start_frame,end_frame, delay), delay);
- }
- function switch_slides(frame, start_frame, end_frame, delay) {
- return (function() {
- Effect.Fade('slideshow' + frame);
- if (frame == end_frame) { frame = start_frame; } else { frame = frame + 1; }
- setTimeout("Effect.Appear('slideshow" + frame + "');", 850);
- setTimeout(switch_slides(frame, start_frame, end_frame, delay), delay + 850);
- })
- }
- </script>
Seconde solution : Source : Easy Scriptaculous Slideshow
- var album = {
- startup: function() {
- new PeriodicalExecuter(album.cycle, 5) // change image every 5 seconds
- },
- cycle: function() {
- new Effect.Fade('image', { // the id of the <DIV> containing the photos
- duration: 1,
- fps: 50,
- afterFinish: function() {
- new Ajax.Updater('image','/album/next', { // URL for next <IMG> tag
- asynchronous: true,
- onSuccess: function() {
- new Effect.Appear('image', {
- duration: 1,
- fps: 50,
- queue:'end'
- })
- }
- })
- }
- })
- }
- }
- window.onload = album.startup
Une troisième solution s’offre à vous, version améliorée.
Edit du 20/08 : Une autre alternative pour créer un fondu automatique (diaporama ou slideshow) avec des bloc html (pas d’ajax) : Slideshow xhtml avec Scriptaculous


Commentaires