Avatar billede qualon1 Nybegynder
16. juni 2006 - 19:29

Script går amok

Hej

Jeg 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.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester