2 random images tonen

Status
Niet open voor verdere reacties.

dempsey

Nieuwe gebruiker
Lid geworden
30 nov 2012
Berichten
3
ik heb een mooi script gevonden wat random één plaatje met link laat zien.
Nu wil in plaats van 1, 2 plaatjes tonen.
Hoe moet ik het script aanpassen?

<script type="text/javascript">

var images = [],
index = 0;

images[0] = "<a href = 'http://www.computerhope.com/index.htm'><img src='http://www.computerhope.com/banners/banner.gif' alt='Visit Computer Hope'></a>";

images[1] = "<a href = 'http://www.computerhope.com/history/index.htm'><img src='http://www.computerhope.com/banners/banner2.gif' alt='Computer History'></a>";

images[2] = "<a href = 'http://www.computerhope.com/index.htm'><img src='http://www.computerhope.com/banners/banner3.gif' alt='Visit Computer Hope'></a>";

images[3] = "<a href = 'http://www.computerhope.com/newslet.htm'><img src='http://www.computerhope.com/banners/banner4.gif' alt='Computer Hope Newsletter'></a>";

index = Math.floor(Math.random() * images.length);

document.write(images[index]);


</script>
 
twee keer het script aanroepen :)

Je loopt dan natuurlijk wel het risico dat beiden hetzelfde zijn. Overigens is dat vaak makkelijker op te lossen via de backend zoals PHP als je dat hebt. dan kun je dat bijvoorbeeld via een database doen en hoeft je pagina niet aangepast te worden als je een nieuw plaatje wil toevoegen.
 
de bedoeling is dat niet twee dezelfde plaatjes te zien zijn.
Kan dat met een kleine toevoeging aan dit huidige script?
 
[js]var index2 = 0;
do
{
index2 = Math.floor(Math.random() * images.length);
} while (index == index2);
document.write(images[index2]);[/js]

Dit toevoegen onderaan het script.
 
Je kunt in principe de volgorde van de lijst door elkaar husselen en dan 1 en 2 kiezen. Helaas is mijn javascript erg roestig. Ik heb dus geen kant en klare oplossing. Volgens mij kan het ongeveer zo

Code:
//dit komt na de images = ... lijnen
var images2 = [];
for (var i=0;i<images.length;i++)
{
   index = Math.floor(Math.random() * (images.length));
   images2.push(images[i]);
   images.splice(i,1)
}

Als het goed is staat images2 nu in willekeurige volgorde en kun je [0] en [1] gebruiken en dat zouden twee willekeurige, niet dezelfde, plaatjes moeten zijn.

deze code werkt voor elke willekeurige hoeveelheid plaatjes en aantal benodigd
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan