Hi all, i am new to javascript and i am trying to create a pure html/css/javascript image gallery. I am stuck with trying to get captions to appear when either the play button is pressed or when the thumbnails are clicked..
Here is my javascript:
Code:// JavaScript Document var imgNum = 0; function next()//everytime the big image is clicked it changes { document.getElementById("slide").src = "Assets/images/big/"+imgNum+".jpg"; imgNum++; } function changeImage(evt,el)//changes the big image each time a thumbnail is clicked { evt.preventDefault(evt);//fail gracefully when javascript is turned off. var elem = document.getElementById("slide"); elem.src = "Assets/images/big/"+el+".jpg"; } var i = 0, imageSorce = new Array(), preload = new Array();//add an array to cycle through the images imageSorce[0]="Assets/images/big/0.jpg"; imageSorce[1]="Assets/images/big/1.jpg"; imageSorce[2]="Assets/images/big/2.jpg"; imageSorce[3]="Assets/images/big/3.jpg"; imageSorce[4]="Assets/images/big/4.jpg"; imageSorce[5]="Assets/images/big/5.jpg"; imageSorce[6]="Assets/images/big/6.jpg"; imageSorce[7]="Assets/images/big/7.jpg"; for (var j=0; j<imageSorce.length;j++) { preload[j] = new Image; preload[j].src = imageSorce[j]; } function mode(param) { smode=param; } function startSlideshow() { if(smode=="play") { document.getElementById("play").disabled="disabled"; document.getElementById("stop").disabled=""; document.getElementById("slide").src=imageSorce[i]; i++; setTimeout("startSlideshow()",5000); } else if(smode=="stop") { document.getElementById("stop").disabled="disabled"; document.getElementById("play").disabled=""; document.getElementById("play").value=""; } if(i==imageSorce.length) { i=0; } } var caption = new Array(); caption[0]="caption1" caption[1]="caption2" caption[2]="caption3" caption[3]="caption4" var aryImages = new Array(); aryImages[0] = "Assets/images/big/0.jpg"; aryImages[1] = "Assets/images/big/1.jpg"; aryImages[2] = "Assets/images/big/2.jpg"; aryImages[3] = "Assets/images/big/3.jpg"; for (i=0; i < aryImages.length; i++) { var preload = new Image(); preload.src = aryImages[i]; } function swap(imgIndex) { document['imgMain'].src = aryImages[imgIndex]; TheText = caption[imgIndex]; document.getElementById('captionarea').innerHTML=TheText; }
and here is my html:
HTML Code:<div id="gallery"> <img id="slide" src="Assets/images/big/0.jpg" onClick="next();"> <span id="captionarea"></span> <br /> </div> <div id="button"> <input id="play" class="play" type="button" value="" onClick="mode('play');startSlideshow();" /> <input id="stop" class="stop" type="button" value="" disabled="disabled" onclick="mode('stop');startSlideshow();" /> </div> <div id="thumb"> <ul class="thumbnail"> <li><a href="Assets/images/big/0.jpg" onClick="changeImage(event,'0');"><img class="thumb" src="Assets/images/thumbs/0.jpg" /></a></li> <li><a href="Assets/images/big/1.jpg" onClick="changeImage(event,'1');"><img class="thumb" src="Assets/images/thumbs/1.jpg" /></a></li> <li><a href="Assets/images/big/2.jpg" onClick="changeImage(event,'2');"><img class="thumb" src="Assets/images/thumbs/2.jpg" /></a></li> <li><a href="Assets/images/big/3.jpg" onClick="changeImage(event,'3');"><img class="thumb" src="Assets/images/thumbs/3.jpg" /></a></li> <li><a href="Assets/images/big/4.jpg" onClick="changeImage(event,'4');"><img class="thumb" src="Assets/images/thumbs/4.jpg" /></a></li> <li><a href="Assets/images/big/5.jpg" onClick="changeImage(event,'5');"><img class="thumb" src="Assets/images/thumbs/5.jpg" /></a></li> <li><a href="Assets/images/big/6.jpg" onClick="changeImage(event,'6');"><img class="thumb" src="Assets/images/thumbs/6.jpg" /></a></li> <li><a href="Assets/images/big/7.jpg" onClick="changeImage(event,'7');"><img class="thumb" src="Assets/images/thumbs/7.jpg" /></a></li> </ul> </div><!-- thumb--> </div><!--gallery-->
I realise i have probably gone about the javscript in the hardest way possible but its a learning curve.. is any body able to help me with the caption side of things?



Reply With Quote
thanks heaps, while i have you here can you see any reason why some times i have to press the stop button first before i press the start button to make the slideshow work?

Bookmarks