Script går amok
HejJeg er ved at lave et slideshow af billeder, og det virker skam også. Men jeg har et problem med at nogle gange, og det er meget tilfældig hvornår det sker, men så går scriptet amok, og skifter billedet hele tiden, og overbelaster browseren.
Mit script ser sådan ud:
<script>
var slideshow_width=570 //SET IMAGE WIDTH
var slideshow_height=570 //SET IMAGE HEIGHT
var pause=4000 //SET PAUSE BETWEEN SLIDE (3000=3 seconds)
var fadeimages=new Array()
fadeimages[0] = 'images/pictures/1150368131_hjem0014.jpg'
fadeimages[1] = 'images/pictures/1150368131_hjem0041.jpg'
fadeimages[2] = 'images/pictures/1149975921_hjem0001.jpg'
fadeimages[3] = 'images/pictures/1149976051_hjem0113.jpg'
fadeimages[4] = 'images/pictures/1150367586_hjem0013.jpg'
var preloadedimages=new Array()
for (p=0;p<fadeimages.length;p++){
preloadedimages[p]=new Image()
preloadedimages[p].src=fadeimages[p]
}
var ie4=document.all&&navigator.userAgent.indexOf("Opera")==-1
var dom=document.getElementById&&navigator.userAgent.indexOf("Opera")==-1
var curpos=10
var degree=10
var curcanvas="canvas0"
var curimageindex=3
var nextimageindex=1
var t
if (ie4||dom)
document.write('<div valign=middle id=canvasmain style="position:relative;width:'+slideshow_width+';height:'+slideshow_height+';overflow:hidden;"><div id="canvas0" style="text-align:center;background:#cccccc;position:absolute;width:'+slideshow_width+';height:'+slideshow_height+';top:0;filter:alpha(opacity=10);-moz-opacity:10"></div><div valign=bottom id="canvas1" style="text-align:center;vertical-align:bottom;background:#cccccc;position:absolute;width:'+slideshow_width+';height:'+slideshow_height+';top:0;filter:alpha(opacity=100);-moz-opacity:100"><table cellspacing=0 cellpadding=0 height=100% valign=middle><tr><td><img src="'+fadeimages[curimageindex]+'" style="border: 1px solid #000000;" onmouseover="pauseSlide();" onmouseout="startSlide();"></td></tr></table></div></div>')
else
document.write('<img name="defaultslide" src="'+fadeimages[0]+'">')
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='<table cellspacing=0 cellpadding=0 height=100% valign=middle><tr><td><img valign=bottom align=center src="'+fadeimages[nextimageindex]+'" style="border: 1px solid #000000;" onmouseover="pauseSlide();" onmouseout="startSlide();"></td></tr></table>'
nextimageindex = Math.floor(Math.random()*fadeimages.length)
if(nextimageindex == curimageindex) {
nextimageindex=(nextimageindex<fadeimages.length-1)? nextimageindex+1 : 0
}
t = 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 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='<table cellspacing=0 cellpadding=0 height=100% valign=middle><tr><td><img align=center src="'+fadeimages[curimageindex]+'" style="border: 1px solid #000000;" onmouseover="pauseSlide();" onmouseout="startSlide();"></td></tr></table>'
t = setTimeout("rotateimage()",pause)
}
function pauseSlide() {
clearTimeout(t);
}
function startSlide() {
t = setTimeout("rotateimage()",pause)
}
if (ie4||dom)
window.onload=startit
else
setInterval("rotateimage()",pause)
</script>
Det jeg gerne ville have gjort var at evt. at identificere fejlen, eller lave en form for check funktion i den, så den først skifter når billedet er fuld loaded.
