Danne VMedlem sedan aug. 20068 090 inlägg Hej,
Om det finns nån javascrpt-guru i församlingen, så undrar jag om det går att göra om ett bildspel jag har så att ordningen på bilderna som visas blir slumpmässig. Just nu kommer dom i samma ordning hela tiden.
Så här ser skriptet ut:
var slidespeed=4000
var slideimages=new Array("1.jpg", "2.jpg", "3.jpg", "4.jpg", "5.jpg", "6.jpg")
//specify corresponding links
var slidelinks=new Array("","","")
var newwindow=0 //open links in new window? 1=yes, 0=no
var imageholder=new Array()
var ie=document.all
for (i=0;i<slideimages.length;i++){
imageholder[i]=new Image()
imageholder[i].src=slideimages[i]
}
function gotoshow(){
if (newwindow)
window.open(slidelinks[whichlink])
else
window.location=slidelinks[whichlink]
}
Bilderna kommer INTE att funka som länkar. De raderna kan alltså struntas i.
The_HulkMedlem sedan juni 20031 837 inlägg med Math.random() får du ett slumpvalt värde mellan 0 och 1.
var imgIdx = Math.floor(Math.random()*slidesimages.length);
tror att ovanstående kod ska slumpa fram ett id, men det slumpar inte fram alla exakt en gång. då behöver man skriva lite mer men det är en liten bit på vägen.
Danne VMedlem sedan aug. 20068 090 inlägg
The_Hulk skrev:
med Math.random() får du ett slumpvalt värde mellan 0 och 1.
var imgIdx = Math.floor(Math.random()*slidesimages.length);
tror att ovanstående kod ska slumpa fram ett id, men det slumpar inte fram alla exakt en gång. då behöver man skriva lite mer men det är en liten bit på vägen.
Hej,
Tack för svar!
Nejdå, det är OK om samma bild skull råka komma upp lite oftare.
Men jag vet nada om javascript, så om du skulle vara bussig och visa var den där kodsnutten ska in, dvs hur skriptet blir i färdigt skick, så vore det otroligt hyggligt.
spangoMedlem sedan juni 20008 205 inlägg Annars kan man kasta om elementen i arrayen med en randomiseringsalgoritm.
function fisherYates ( myArray ) {
var i = myArray.length;
if ( i == 0 ) return false;
while ( --i ) {
var j = Math.floor( Math.random() * ( i + 1 ) );
var tempi = myArray[i];
var tempj = myArray[j];
myArray[i] = tempj;
myArray[j] = tempi;
}
}
var slidespeed=4000
var slideimages=new Array("1.jpg", "2.jpg", "3.jpg", "4.jpg", "5.jpg", "6.jpg")
// shuffle images
fisherYates(slideimages);
//specify corresponding links
var slidelinks=new Array("","","")
var newwindow=0 //open links in new window? 1=yes, 0=no
var imageholder=new Array()
var ie=document.all
for (i=0;i<slideimages.length;i++){
imageholder[i]=new Image()
imageholder[i].src=slideimages[i]
}
function gotoshow(){
if (newwindow)
window.open(slidelinks[whichlink])
else
window.location=slidelinks[whichlink]
}
Danne VMedlem sedan aug. 20068 090 inlägg
spango skrev:
Annars kan man kasta om elementen i arrayen med en randomiseringsalgoritm.
[CODE]
function fisherYates ( myArray )
osv....
Jajamänsan! Det funkar galant!
Tusen tack för hjälpen!