Toon posts:

Random plaatjes plaatsen, javascript?

Pagina: 1
Acties:
  • 138 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hoi,

Ik heb een site gemaakt voor mijn volleybalvereniging, zie www.memesa.appingedam.nl.

Rechts zie je een bovenaan twee hoofdsponsoren en daaronder een rijtje met subsponsoren. Nu wil ik het zo doen dat ik met een scriptje de positie steeds laat veranderen wie waar staat. Nu staat dus steeds dezelfde bovenaan. Dat is natuurlijk niet eerlijk. Iedereen betaald hetzelfde voor een plek maar de ondersten staan dus altijd onderaan en zullen dan ook minder kliks krijgen.

Ik was benieuwd of met een javascript deze plaatjes random geplaatst konden worden. Hoop dat iemand me kan helpen.

MvG

Rudolf Bos

  • Mastermind
  • Registratie: Februari 2000
  • Laatst online: 29-11 15:35
Dan moet je de URL's in een array zetten en die array random shufflen. Zoiets als dit gebruiken:
http://homepage.ntlworld.com/kayseycarvey/jss2p14.html

[ Voor 47% gewijzigd door Mastermind op 06-06-2007 23:16 ]


  • Rekcor
  • Registratie: Februari 2005
  • Laatst online: 08-10 13:03
Ik hoop wel dat dat scriptje eenmalig draait (zodra je de pagina laadt).

Anders wordt het pretty annoying: verspringende banners op je scherm.

Verwijderd

Topicstarter
Hmm, dat is denk ik niet wat ik zoek. Zijn allemaal schaaploterij getalletjes. Ik moet plaatjes hebben die in willekeurige volgorde worden geplaatst.

  • brama
  • Registratie: Februari 2001
  • Niet online
Dan herschrijf je het toch lichtjes?

Zoiets..

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
var numbers = new Array();
var urls = new Array();
var idx;
var oldnr;
var oldurls;
var NR_IMAGES = 5;
var i;

//net zoveel elementen in urls array stoppen als in numbers!
urls[0] = 'http://site1/';
urls[1] = 'http://site2/';
..
urls[4] = 'http://site4'/;

for (i = 0; i < NR_IMAGES; i++) {
 numbers[i] = i;
}

for (i = 0; i < NR_IMAGES; i++) {
 idx = (Math.random() * NR_IMAGES); //0..4
 idx = parseInt(idx, 10);
 //swap 2 indices in array
 oldnr = numbers[i];
 numbers[i] = numbers[idx];
 numbers[idx] = oldnr;
 oldurl = urls[i];
 urls[i] = urls[idx];
 urls[idx] = oldurl;
}

for (i = 0; i < NR_IMAGES; i++) {
 document.write('<a href="' + urls[i] + '"><img border="0" src="plaatje' + numbers[i] + '.jpg"/></a>');
}


Je plaatjes moeten in dit voorbeeld dan plaatje0.jpg .. plaatje4.jpg heten uiteraard.

[ Voor 21% gewijzigd door brama op 07-06-2007 15:27 ]

I mentioned it once, but I think I got away with it.


Verwijderd

Je kunt ook gewoon de URLs naar de plaatjes in een array zetten en die shufflen:
JavaScript:
1
2
3
4
5
6
7
8
9
var files = [
  'http://de.url.van/een/plaatje.jpg',
  'http://en.de/url/van/een/ander/plaatje.jpg',
  'en',
  'zo',
  'voort'
];

files.sort(function () { return Math.sin(Math.random() * 360); });


En ja, die ranzige maar ook wel mooie shuffle-hack kwam ineens in me op. ;)

Verwijderd

Topicstarter
Thx Alot brama! Het werkt nu inderdaad, zie www.kippie.info/memesa

Bedankt voor uw inbreng, dit was echt precies waar ik naar op zoek was!

Verwijderd

Topicstarter
Oh, trouwens nu is er nog 1 probleem. Kan ik de plaatjes ook allemaal apart naar hun eigen site laten linken?

MvG

  • brama
  • Registratie: Februari 2001
  • Niet online
De smerigste oplossing die ik kan verzinnen is dat je net zovel redirects aanmaakt met hetzelfde nummertje erin als het plaatje (bijv. http://jesite/redirect0..16) ;-)

Smerig maar wel simpel ;)

[edit] bovenstaande code van mij aangepast, voor de iets nettere manier, waarbij je handmatig een urls array aanmaakt met de site url voor elk element in die array.

de url van urls[0] moet dan verwijzen naar de site die bij plaatje0.jpg hoort uiteraard..

@Aapopfiets
Heh, geweldig..leuke oplossing :)

[ Voor 45% gewijzigd door brama op 07-06-2007 15:27 ]

I mentioned it once, but I think I got away with it.


Verwijderd

Topicstarter
Oke brama wederom thx alot! Maar we zijn er nog niet helemaal. Niet iedereen heeft namelijk een website. Is er ook de mogelijkheid om een advertentie zonder url te laten verschijnen? Als ik nu de regel weghaal van een site. linkt ie naar een lege pagina, krijg je dus foutmelding. Hoe dit te verhelpen?

Alvast bedankt!
Pagina: 1