Hej.
Jeg har fundet et gammel javascript frem, som kan skifte mellem en række billeder i et tidsinterval. Koden ligger som "kode 1".
Billederne kommer frem i samme rækkefølge hver gang, men jeg så gerne at de kom i en tilfældig rækkefølge. Jeg har forsøgt at erstatte i i loopet med
"Math.floor(Math.random()*variableslide.length)"
men det får ikke rækkefølgen til at være tilfældig... (se kode 2)
Jeg prøvede så istedet at erstatte stykket
var currentslide=0
med
var currentslide=Math.random()*variableslide.length
Det gjorde at rækkefølgen stadig var den samme, men begyndelsespunktet var tilfældigt.
Men hvordan kan jeg få den til at have rækkefølgen helt tilfældig?
Og kan jeg få koden til at vise en .php-side eller .html-side i stedet for billeder?
Hvilket objekt skal det så være?:
"var cacheimage=new Image()"
Håber nogen kan hjælpe
Kode 1:
<script language="JavaScript1.2">
/***********************************************
* Flexi Slideshow- © Dynamic Drive (www.dynamicdrive.com)
* This notice must stay intact for use
* Visit
http://www.dynamicdrive.com/ for full source code
***********************************************/
var variableslide=new Array()
//variableslide[x]=["path to image", "OPTIONAL link for image", "OPTIONAL text description (supports HTML tags)"]
variableslide[0]=['Img/Max.jpg', '', '']
variableslide[1]=['Img/Nanna.jpg', '', '']
variableslide[2]=['Img/Oel.jpg', '', '']
variableslide[3]=['Img/Ole.jpg', '', '']
variableslide[4]=['Img/Stine.jpg', '', '']
variableslide[5]=['Img/Rasmus.jpg', '', '']
variableslide[6]=['Img/Tri.jpg', '', '']
variableslide[7]=['Img/Max2.jpg', '', '']
variableslide[8]=['Img/Nanna2.jpg', '', '']
variableslide[9]=['Img/Ole2.jpg', '', '']
variableslide[10]=['Img/Rasmus2.jpg', '', '']
variableslide[11]=['Img/Stine2.jpg', '', '']
variableslide[12]=['Img/Ole3.jpg', '', '']
//configure the below 3 variables to set the dimension/background color of the slideshow
var slidewidth='25px' //set to width of LARGEST image in your slideshow
var slideheight='25px' //set to height of LARGEST iamge in your slideshow, plus any text description
var slidebgcolor='#00000'
//configure the below variable to determine the delay between image rotations (in miliseconds)
var slidedelay=1000
////Do not edit pass this line////////////////
var ie=document.all
var dom=document.getElementById
for (i=0;i<variableslide.length;i++){
var cacheimage=new Image()
cacheimage.src=variableslide
[0]
}
var currentslide=0
function rotateimages(){
contentcontainer='<center>'
if (variableslide[currentslide][1]!="")
contentcontainer+='<a href="'+variableslide[currentslide][1]+'">'
contentcontainer+='<img src="'+variableslide[currentslide][0]+'" border="0" vspace="3">'
if (variableslide[currentslide][1]!="")
contentcontainer+='</a>'
contentcontainer+='</center>'
if (variableslide[currentslide][2]!="")
contentcontainer+=variableslide[currentslide][2]
if (document.layers){
crossrotateobj.document.write(contentcontainer)
crossrotateobj.document.close()
}
else if (ie||dom)
crossrotateobj.innerHTML=contentcontainer
if (currentslide==variableslide.length-1) currentslide=0
else currentslide++
setTimeout("rotateimages()",slidedelay)
}
if (ie||dom)
document.write('<div id="slidedom" style="width:'+slidewidth+';height:'+slideheight+'; background-color:'+slidebgcolor+'"></div>')
function start_slider(){
crossrotateobj=dom? document.getElementById("slidedom") : ie? document.all.slidedom : document.slidensmain.document.slidenssub
if (document.layers)
document.slidensmain.visibility="show"
rotateimages()
}
if (ie||dom)
start_slider()
else if (document.layers)
window.onload=start_slider
</script>
Kode 2:
for (i=0;i<variableslide.length;i++){
var cacheimage=new Image()
cacheimage.src=variableslide[Math.floor(Math.random()*variableslide.length)][0]
}
////resten af koden er uændret i forhold til Kode 1 ///