Toon posts:

[js] waarom werkt dit rollover script niet?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hey daar, ik ben nu eens bezig met image rollovers (jaja, JavaScript hoofstuk 1 ;)) maar dan met de code in de header. of nou ja, header.. zie de code:


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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<!-- Script which chooses the right background image using screen.width -->
<script type="text/javascript" language="Javascript">
<!--

document.write('<\/head>')
document.write('<body background="images\\e-' + screen.width + '.gif">')

// The following script is for preloading the menu images and making the rollovers

function overImg(imgNam, btn) {
  imgName='document.btn'+imgNam;
  if(document.images) {
    if(btn=='0') {
      imgSrcC='button.gif';
    }
    if(btn=='1') {
      imgSrcC='button_over.gif';
    }
    imgSrc = 'images\\menu\\' + imgSrcC;
    imgName.src=imgSrc;
  }
}

// -->
</script>
<!-- End background choosing script -->

<div align="center" name="logoDiv">[img]"images/logo.gif"></div>

<table[/img]
  <tr>
    <td>[img]"images/menu/top.gif"></td>
[/img]
  <tr>
    <td><a href="#" onMouseOver="overImg(1,1)" onMouseOut="overImg(1,0)"><img src="images/menu/button.gif" name="btn1" 

border="0"></a></td>
  </tr>
  <tr>
    <td><a href="#" onMouseOver="document.btn2.src='images/menu/button_over.gif'" 

onMouseOut="document.btn2.src='images/menu/button.gif'">[img]"images/menu/button.gif"[/img]</a></td>
  </tr>
  <tr>
    <td>[img]"images/menu/bottom.gif"></td>
[/img]
</table>

</body>
</html>


De code, die de </head><body ...> schrijft doet het prima, maar alleen de rollover (de 1e om precies te zijn, de andere maakt geen gebruikt van het script dat in de heading staat maar heeft een inline-script) doet het niet. ik probeerde de inline code zo klein mogelijk te houden (onMouseOver="overImg(1,1)" dus), maar het werkt niet? Hij geeft geen errors...

tell me please

Verwijderd

Topicstarter
oh ja, of ik \\ of \/ doe (je ziet wel waar) maakt in MSIE niks uit, dus daar maak ik me nog ff geen zorgen om

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Je weet duidelijk niet waar je mee bezig bent; je probleem zomaar hier neerplempen zal je dus denk ik ook niet verder helpen.
Lees eens wat JavaScript tutorials door zodat je zelf inzicht krijgt in de code die je gebruikt. Als je er dan nog niet uitkomt, dan mag je nog eens een post in dit forum proberen...

Intentionally left blank


  • Yoozer
  • Registratie: Februari 2001
  • Laatst online: 20-01 22:02

Yoozer

minimoog

wat ik zou proberen als ik jou was is een andere voorbeeldtutorial vinden, en dan vervangen in de functie (zoals de links naar de images) tot het op jou van toepassing is. dan hoef je nog steeds geen zak te snappen van het script, maar het werkt tenminste wel.

zoek ook een tutorial met een stap-voor-stap verklaring met wat de code uberhaupt doet. pak je boek en kijk wat die woorden betekenen, inplaats van het geheel te bestuderen.

teveel zooi, te weinig tijd


Verwijderd

Topicstarter
Voor alle duidelijkheid: ik been geen newbie. Deze code heb ik helemaal zelf geschreven, dus niet uit een boek. Ik zei dat het hoofdstuk 1 was omdat het zo'n eenvoudig script is, juist daarom verwonder ik me erover dat het niet werkt terwijl er geen errors zijn.

De plaatjes bestaan. De code werkt. Het enige wat er níet gebeurt, is dat het plaatje verandert. Of jullie me dát willen vertellen, en niet zeggen dat ik nog eens goed het hoofdstuk moet doornemen want daar gaat het helemaal niet om! Deze code hoort te werken en jullie beweren dat dit erg makkelijk is. Dus vertel op!

Verwijderd

heb je wel een begin body en html tag want die zie ik niet.

Verwijderd

Topicstarter
Verwijderd schreef op 18 augustus 2002 @ 13:44:
heb je wel een begin body en html tag want die zie ik niet.
Je bedoelt: een </head> en een <body> tag. En die zijn er wel, die worden gegenereerd door het javascript. Maar inmiddels is de code anders, dat script mag je gewoon vervangen door </head><body>, maar voor de werking van het rollover script maakt het niks uit. Punt is gewoon dat alles werkt, er zijn geen errors, maar hij verwisselt het plaatje niet. Dus als iemand me uit kan leggen waarom?

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Verwijderd schreef op 18 augustus 2002 @ 12:51:
Voor alle duidelijkheid: ik been geen newbie. Deze code heb ik helemaal zelf geschreven, dus niet uit een boek. Ik zei dat het hoofdstuk 1 was omdat het zo'n eenvoudig script is, juist daarom verwonder ik me erover dat het niet werkt terwijl er geen errors zijn.

De plaatjes bestaan. De code werkt. Het enige wat er níet gebeurt, is dat het plaatje verandert. Of jullie me dát willen vertellen, en niet zeggen dat ik nog eens goed het hoofdstuk moet doornemen want daar gaat het helemaal niet om! Deze code hoort te werken en jullie beweren dat dit erg makkelijk is. Dus vertel op!
Toch maak je hier een hele grove beginnersfout:
code:
1
imgName='document.btn'+imgNam;

dit geeft een string terug, en geen verwijzing naar je image element...

Intentionally left blank


Verwijderd

Topicstarter
crisp schreef op 18 augustus 2002 @ 14:31:
[...]

Toch maak je hier een hele grove beginnersfout:
code:
1
imgName='document.btn'+imgNam;

dit geeft een string terug, en geen verwijzing naar je image element...
Oke. Hoe moet het dan?

Verwijderd

imgName = document.getElementByID('btn'+imgNam).name;

das een wilde gok hoor...

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Stond dat niet in hoofdstuk 1 ;)
De smerige manier:
code:
1
imgName=eval('document.btn'+imgNam);

Een nettere manier:
code:
1
imgName=document.images['btn'+imgNam];

Intentionally left blank


Verwijderd

Topicstarter
Verwijderd schreef op 18 augustus 2002 @ 15:31:
imgName = document.getElementByID('btn'+imgNam).name;

das een wilde gok hoor...
Eindelijk hulp. Maar helaas werkt het niet...

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Verwijderd schreef op 18 augustus 2002 @ 15:31:
imgName = document.getElementByID('btn'+imgNam).name;

das een wilde gok hoor...
Niet als de img geen id heeft; de .name hoeft er ook niet achter.
Ik zou het gewoon op de document.images manier laten omdat dit ook in versie 4 browsers werkt...

Intentionally left blank


Verwijderd

Topicstarter
crisp schreef op 18 augustus 2002 @ 15:37:
[...]

Stond dat niet in hoofdstuk 1 ;)
De smerige manier:
code:
1
imgName=eval('document.btn'+imgNam);

Een nettere manier:
code:
1
imgName=document.images['btn'+imgNam];
Hee, hier heb ik wat aan! Dank u zeer _/-\o_
Pagina: 1