Forbedring af kode - Slideshow
HejJeg har nedenstående kode på min hjemmeside hvor den for tiden har 40 billeder at skifte mellem. Det er noget kode som jeg har fået på dynamicdrive.com og fået lidt hjælp til at tilpasse den. Det er meningen at den skal tage et tilfældigt billede hver gang og det gør den tildels også. Dog virker det som om det den ofte kører i ring med 4-5 billeder og så hopper videre med andre billeder. Nogle gange kommer det samme billede igen efter kun et andet billedet. Er der noget man kan forbedre, så den skifter billedet endnu mere tilfældigt. Alternativt at den ikke tager det samme billedet indenfor 10 billeder eller lign?!
Jeg vedlægger koden, men I er også velkommen til at tage et kig på www.stockit.dk og selv se hvordan den kører. Så får man en bedre ide om hvor ofte/hurtigt det samme billede kommer igen:
koden:
<script language="JavaScript1.2">
//Fade-in image slideshow- By Dynamic Drive
//For full source code and more DHTML scripts, visit http://www.dynamicdrive.com
//This credit MUST stay intact for use
var slideshow_width='200px'; //SET IMAGE WIDTH
var slideshow_height='300px'; //SET IMAGE HEIGHT
var pause=3000; //SET PAUSE BETWEEN SLIDE (3000=3 seconds)
var fadeimages=new Array();
//SET IMAGE PATHS. Extend or contract array as needed
fadeimages[0]="images/menu_billeder/1.jpg"
fadeimages[1]="images/menu_billeder/2.jpg"
fadeimages[2]="images/menu_billeder/3.jpg"
fadeimages[3]="images/menu_billeder/4.jpg"
fadeimages[4]="images/menu_billeder/5.jpg"
fadeimages[5]="images/menu_billeder/6.jpg"
fadeimages[6]="images/menu_billeder/7.jpg"
fadeimages[7]="images/menu_billeder/8.jpg"
fadeimages[8]="images/menu_billeder/9.jpg"
fadeimages[9]="images/menu_billeder/10.jpg"
fadeimages[10]="images/menu_billeder/11.jpg"
fadeimages[11]="images/menu_billeder/12.jpg"
fadeimages[12]="images/menu_billeder/13.jpg"
fadeimages[13]="images/menu_billeder/14.jpg"
fadeimages[14]="images/menu_billeder/15.jpg"
fadeimages[15]="images/menu_billeder/16.jpg"
fadeimages[16]="images/menu_billeder/17.jpg"
fadeimages[17]="images/menu_billeder/18.jpg"
fadeimages[18]="images/menu_billeder/19.jpg"
fadeimages[19]="images/menu_billeder/20.jpg"
fadeimages[20]="images/menu_billeder/21.jpg"
fadeimages[21]="images/menu_billeder/22.jpg"
fadeimages[22]="images/menu_billeder/23.jpg"
fadeimages[23]="images/menu_billeder/24.jpg"
fadeimages[24]="images/menu_billeder/25.jpg"
fadeimages[25]="images/menu_billeder/26.jpg"
fadeimages[26]="images/menu_billeder/27.jpg"
fadeimages[27]="images/menu_billeder/28.jpg"
fadeimages[28]="images/menu_billeder/29.jpg"
fadeimages[29]="images/menu_billeder/30.jpg"
fadeimages[30]="images/menu_billeder/31.jpg"
fadeimages[31]="images/menu_billeder/32.jpg"
fadeimages[32]="images/menu_billeder/33.jpg"
fadeimages[33]="images/menu_billeder/34.jpg"
fadeimages[34]="images/menu_billeder/35.jpg"
fadeimages[35]="images/menu_billeder/36.jpg"
fadeimages[36]="images/menu_billeder/37.jpg"
fadeimages[37]="images/menu_billeder/38.jpg"
fadeimages[38]="images/menu_billeder/39.jpg"
fadeimages[39]="images/menu_billeder/40.jpg"
////NO need to edit beyond here/////////////
var preloadedimages=new Array();
for (p=0;p<fadeimages.length;p++){
preloadedimages[p]=new Image();
preloadedimages[p].src=fadeimages[p];
}
var ie4=document.all;
var dom=document.getElementById;
if (ie4||dom)
document.write('<div style=" position:relative;width:'+slideshow_width+';height :'+slideshow_height+';overflow:hidden"><div id="canvas0" style=" position:absolute;width:'+slideshow_width+';height :'+slideshow_height+';top:0;left:0;filter:alpha(opacity=10);-moz-opacity:10"></div><div id="canvas1" style=" position:absolute;width:'+slideshow_width+';height:'+slideshow_height+';top:0;left:0;filter:alpha(opacity=10);-moz-opacity:10"></div></div>');
else
document.write('<img name="defaultslide" src="'+fadeimages[0]+'">');
var curpos=10;
var degree=10;
var curcanvas="canvas0";
var curimageindex=0;
var curimageindex=getUniqueNumber();
var nextimageindex=getUniqueNumber();
function fadepic(){
if (curpos<100){
curpos+=10;
if (tempobj.filters)
tempobj.filters.alpha.opacity=curpos;
else if (tempobj.style.MozOpacity)
tempobj.style.MozOpacity=curpos/100;
}
else{
clearInterval(dropslide);
nextcanvas=(curcanvas=="canvas0")? "canvas0" : "canvas1";
tempobj=ie4? eval("document.all."+nextcanvas) : document.getElementById(nextcanvas);
tempobj.innerHTML='<img src="'+fadeimages[nextimageindex]+'">';
nextimageindex=getUniqueNumber();
setTimeout("rotateimage()",pause);
}
}
function rotateimage(){
if (ie4||dom){
resetit(curcanvas);
var crossobj=tempobj=ie4? eval("document.all."+curcanvas) : document.getElementById(curcanvas);
crossobj.style.zIndex++;
var temp='setInterval("fadepic()",50)';
dropslide=eval(temp);
curcanvas=(curcanvas=="canvas0")? "canvas1" : "canvas0";
}
else
document.images.defaultslide.src=fadeimages[curimageindex];
curimageindex=(curimageindex<fadeimages.length-1)? curimageindex+1 : 0;
}
function randomIndex(){
var intHighest = fadeimages.length-1;
var intLowest = 0;
var num;
do {
num = Math.random();
num = num*intHighest;
num = Math.round(num);
} while ((num>intHighest) || (num<intLowest));
return num;
}
function getUniqueNumber(){
var num;
do {
num = randomIndex();
} while (num == curimageindex);
return num;
}
function resetit(what){
curpos=10;
var crossobj=ie4? eval("document.all."+what) : document.getElementById(what);
if (crossobj.filters)
crossobj.filters.alpha.opacity=curpos;
else if (crossobj.style.MozOpacity)
crossobj.style.MozOpacity=curpos/100;
}
function startit(){
var crossobj=ie4? eval("document.all."+curcanvas) : document.getElementById(curcanvas);
crossobj.innerHTML='<img src="'+fadeimages[curimageindex]+'">';
rotateimage();
}
if (ie4||dom)
window.onload=startit;
else
setInterval("rotateimage()",pause);
</script>
