[JS] Iedere x seconden een andere afbeelding

Pagina: 1
Acties:

  • kleautviool
  • Registratie: Mei 2003
  • Laatst online: 13:46
Heel simpel probleem, maar ik snap niet waarom het niet werkt.

Ik wil dus iedere 10 seconden een andere afbeelding weergeven. Nu heb ik dus onderstaande code om dit te realiseren, alleen verrandert de afbeelding maar 1 keer (naar projecten) daarna gebeurt niks meer.
Ik heb de code doorgelopen om te kijken of de variabele wel gereset wordt, maar dat wordtie volgens mij wel.
Ik krijg verder ook geen errors in FF ofzo :?

Ik heb nu onderstaande code:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
  var interieur = new Image, projecten = new Image, tentoonstellingen = new Image;

  interieur.src = "http://dev.maurice-k.com/Xylos/img/interieur.png";
  projecten.src = "http://dev.maurice-k.com/Xylos/img/projecten.png";
  tentoonstellingen.src = "http://dev.maurice-k.com/Xylos/img/tentoonstellingen.png";

  var delay = 10, currimage = "int";

  function countDown(){
    delay--;
    if(delay == 0){
      if(currimage == "int"){
        document.images['show-info'].src = projecten.src;
        currimage = "pro";
      }else if(currimage == "pro"){
        document.images['show-info'].src = tentoonstellingen.src;
        currimage = "ten";
      }else if(currimage == "ten"){
        document.images['show-info'].src = interieur.src;
        currimage = "int";
      }
    }else{ setTimeout('countDown()',1000); }
  }
  countDown();


Wat doe ik nu fout? Leek me zo makkelijk :X |:(

  • BHR
  • Registratie: Februari 2002
  • Laatst online: 01-12 19:42

BHR

Je reset delay niet na setTimeout (blijft aftellen)

No amount of key presses will shut off the Random Bug Generator


  • zwippie
  • Registratie: Mei 2003
  • Niet online

zwippie

Electrons at work

Als delay een keer 0 is geweest, vergeet je deze weer op 10 te zetten.

How much can you compute with the "ultimate laptop" with 1 kg of mass and 1 liter of volume? Answer: not more than 10^51 operations per second on not more than 10^32 bits.


  • TenshiNL
  • Registratie: Mei 2003
  • Laatst online: 30-09 09:29
Daar komt nog het probleem bij dat de functie countDown, nadat de afbeelding naar "pro" is veranderd, niet meer aangeroepen wordt. Er wordt geen timeout meer geset waarna de functie weer aangeroepen moet worden.
Waarom bouw je overigens een dubbele vertraging (delay) in?

[ Voor 12% gewijzigd door TenshiNL op 03-11-2006 15:05 ]


  • sariel
  • Registratie: Mei 2004
  • Laatst online: 22-05-2024
Verwijder dat hele delay= ding, en set de settimeout op 10000. dan heb je om de 10 secondes een nieuw plaatje.

Copy.com


  • kleautviool
  • Registratie: Mei 2003
  • Laatst online: 13:46
Aahhh.. idd zeg :X

Maargoed, ik heb nu de delay eruit gehaald, en krijg ineens de volgende error :?
document.images['show-info'] has no properties
terwijl ik deze error niet eerder kreeg :?
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  var interieur = new Image, projecten = new Image, tentoonstellingen = new Image;

  interieur.src = "<?=_URL?>/img/interieur.png";
  projecten.src = "<?=_URL?>/img/projecten.png";
  tentoonstellingen.src = "<?=_URL?>/img/tentoonstellingen.png";

  var currimage = "int";

  function countDown(){
    if(currimage == "int"){
      document.images['show-info'].src = projecten.src;
      currimage = "pro";
    }else if(currimage == "pro"){
      document.images['show-info'].src = tentoonstellingen.src;
      currimage = "ten";
    }else if(currimage == "ten"){
      document.images['show-info'].src = interieur.src;
      currimage = "int";
    }
    setTimeout('countDown()',10000);
  }
  countDown();

  • user109731
  • Registratie: Maart 2004
  • Niet online
countDown(); vervangend door:
JavaScript:
1
window.onload = countDown;


De functie word al gerund terwijl de pagina nog niet helemaal geladen is :)
Pagina: 1