Avatar billede hobbittend Novice
23. marts 2010 - 11:23 Der er 3 kommentarer og
1 løsning

Vise tilfældig .php-side

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[i][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 ///
Avatar billede intenz Novice
24. marts 2010 - 18:50 #1
Du skal vel bare vælge et tilfældigt tal (i samme stil som du har forsøgt) i stedet for det her:

if (currentslide==variableslide.length-1) currentslide=0
else currentslide++


erstat med:
currentslide = _tilfældigt_tal_

Jeg er ikke helt overbevidt om at den måde du har forsøgt at lave et tilfældigt tal virker helt efter hensigten.
Der findes en del funktioner på google der kan gøre det for dig:
http://www.google.dk/#hl=da&source=hp&q=javascript+random+number+within+range&meta=&rlz=1R2GGLL_daDK366&aq=1&aqi=g5&aql=&oq=javascript+random+num&gs_rfai=&fp=c8f3dca2a4c7b3cc
Avatar billede hobbittend Novice
24. marts 2010 - 21:23 #2
Ud fra det rodede jeg lidt med det og fik det til at virke =)
Avatar billede intenz Novice
24. marts 2010 - 21:36 #3
Det var da fint :)
Avatar billede hobbittend Novice
27. juli 2010 - 17:33 #4
*LUKKET*
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