HTML Image Slideshow Generator

Description

  • The following wizard generates the code for creating a image slideshow that will allow visitors to flip through a series of photos on your website. Includes controls and descriptions for your picture slideshow.

Steps

  1. Fill in the settings and name for your slideshow. Autoplay Delay controls how many seconds each image is displayed before going to the next image when "Play" is clicked.
  2. Enter the location of the images in the "Slide Image Address" box for each slide (example http://www.yoursite.com/images/photo.jpg). Next to it you can enter a short description for each image.
  3. Generate the HTML and JavaScript code for your slideshow (button at bottom)
  4. You can preview your script (button at bottom)
  5. Copy and Paste the Source Code into your HTML page

Example

Note

  • There is a version 2 of this slideshow which contains many more options. However, it also takes up much more code.
  • Version 1.6 I added "Side Show ID" which allows you to have more than one slideshow on the same page. For each new slideshow on the page, you will need to give it a unique ID (eg; slide1, slide2, slide3, etc). If you are only going to have one slideshow one the page, you can leave this setting unchanged.


Slide Show (version 1.6)
Autoplay Delay: Seconds
Slide Show Title:
Slide Show ID:
(change ID if multiple slideshows are on one page)
Slide Show Image Entries
Slide Image Address Slide Text Description



Source Code

Comments

Thank you very much. I've spend about 5 hours looking for something simple as this (and in a simple code which I can modify a little for my needs).
I was wondering if it was possible to enable an autostart (when the page is loaded), without clicking the start button.
Thanks again!

I was having problems getting the above autoplay-on-load feature working when I used multiple slideshows on the same page. I found the issue was related to the "Slide Show ID." There were 2 places in the code I needed to specify the name of the form/slideshow.

Here is what I came up with:
window.onload=function(){document.ff_NAMEOFMYSLIDESHOW.fa.value="Stop";auto_NAMEOFMYSLIDESHOW();}

In BOLD are the critical missing elements if you are using a custom slideshow ID (other than the default "slide1" one).

Just wanted to share my results. Thank you again!

Is there any way that the photos from the slide show be made to resize to fit screen? I have some portrait and some landscape. I can force a fixed size but that distorts my image. If I don't put in the size control then my images are too large and the controls are off screen.

You can stick a width="640" property on the <img> and NOT put the height tag. That generally allows the height to automatically adjust so the image won't distort.

However, for the best results you should edit/resize the images themselves before you upload them to your website.

If I wanted to change the background color of the slideshow, could I? Currently, it appears transparent, allowing the background of the website to show through. How would I go about setting the slideshow's background color to something different?

If you want to change the background color of the entire thing, you can edit the table
<table cellpadding="3" style="border:1px black solid;border-collapse:collapse;">
and update it to the hex color value to the color you want.
<table cellpadding="3" style="border:1px black solid;border-collapse:collapse;background:#C0C0C0;">

If you want to set a static width and height, you can edit the table
<table cellpadding="3" style="border:1px black solid;border-collapse:collapse;">
and update it to the width and height you want.
<table cellpadding="3" style="border:1px black solid;border-collapse:collapse;" width="350" height="600">

Hi great code, works very well and I appreciate the work and glad to give you the link.

I would like to have the show stop at the end of the images instead of a continuous loop.

Have a great Day!

Change the autoplay function from something like (the 5000 number might be different depending on Autoplay Delay entered):

function auto() {
if(document.ff.fa.value == "Stop"){
rotate(++x);setTimeout("auto()", 5000);}}
to
function auto() {
if(document.ff.fa.value == "Stop" && x!=document.ff.slide.length-1){
rotate(++x);setTimeout("auto()", 5000);}
else{document.ff.fa.value="Start"}}

You can remove the play/stop/next/last/prev buttons by deleting (or commenting out) the following:

<tr><td align="center" style="border:1px black solid;">
<input type="button" onclick="rotate(0);" value="ll&lt;&lt;" title="Jump to beginning" />
<input type="button" onclick="rotate(x-1);" value="&lt;&lt;" title="Last Picture" />
<input type="button" name="fa" onClick="this.value=((this.value=='Stop')?'Start':'Stop');auto();" value="Start" title="Autoplay" style="width:75px;" />
<input type="button" onclick="rotate(x+1);" value="&gt;&gt;" title="Next Picture" />
<input type="button" onclick="rotate(this.form.slide.length-1);" value="&gt;&gt;ll" title="Jump to end" />
</td></tr>

The Slide Selector is required as that is where the actual slide URLs are stored so it can't be removed-removed.

However, you can hide the table row that contains selector. Change:
<tr><td align="center" style="border:1px black solid;">to
<tr><td align="center" style="display:none;">

What would I need to do in order to use the buttons in image mapping.
Like, say I made two images of buttons (<< & >>) and wanted them to act as back and forward instead of the buttons it creates, what would I need to do?

replace the four buttons with:

<a href="#" onclick="rotate(0);return false;"><img src="start.jpg"></a>
<a href="#" onclick="rotate(x-1);return false;"><img src="prev.jpg"></a>

<a href="#" onclick="rotate(x+1);return false;"><img src="next.jpg"></a>
<a href="#" onclick="rotate(this.form.slide.length-1);return false;"><img src="end.jpg"></a>
replacing the images with your own of course.

Mine keeps aligning to the left of my screen? How do I center it?

The table the slideshow is in can be aligned to the center. Change:
<table cellpadding="3" style="border:1px black solid;border-collapse:collapse;">to:
<table cellpadding="3" style="border:1px black solid;border-collapse:collapse;" align="center">

is there any way the slideshow could NOT loop back to the first image when the user clicks all the way to the end, like the "next" button would not do anything once theyve reached the end so it just stops.

to prevent it from rolling over and starting again, change:

x=num%fs.length;
if(x<0) x=fs.length-1;
to:
x=num;
if(x>=fs.length) x=fs.length-1;
if(x<0) x=0;

I really love your slideshow. It's exactly what I need for a special application. It seems to only handle 0-9 slides-need to increase to 16. What would I need to do to change that? Thanks.

Down near the bottom there should be a list stores the slides:

<option value="http://ricocheting.com/slideshow_thumb_alpine.jpg" selected>Olympic National Park</option>
<option value="http://ricocheting.com/slideshow_thumb_rainier.jpg">Mount Rainier National Park</option>
<option value="http://ricocheting.com/slideshow_thumb_teton.jpg">Teton National Park</option>
<option value="http://ricocheting.com/slideshow_thumb_jasper.jpg">Jasper National Park</option>

The first part contains the slide image URL then the second part contains the slide description. Just keep adding as many more as you need.

I am trying to make it so that if I click on an image outside of the entire form, but its still on the same page as the slideshow that when it is clicked the slideshow will jump to that image. How could I do that? I'm thinking that it could be a link associated with the options values somehow.

You can create links to jump to a specific slide like:
<a href="javascript:rotate(2);">Jump to slide</a>Where 2 in is the slide number (2 would be the third slide as it starts from zero: 0,1,2)