edit:
Zou een mod de titel willen veranderen, vergeten te doen voordat ik 'm postte
'[JS] Achtergrond link huidige pagina veranderen' o.i.d.
Zou een mod de titel willen veranderen, vergeten te doen voordat ik 'm postte
'[JS] Achtergrond link huidige pagina veranderen' o.i.d.
Ik ben momenteel bezig met een menu in JavaScript.
In dit menu heeft elke link een achtergrond afbeelding.
De link die gelijk is aan de huidige pagina wil ik een andere achtergrond geven.
(Helaas werk :active in CSS niet op die manier)
Nou ben ik al achter het volgende gekomen:
Ik moet de url van een link in het menu vergelijken met de huidige pagina.
Is de link gelijk dan moet de achtergrond worden veranderd.
Ik heb al enkele uren rondgezocht en kwam daarbij uit op .style.background echter weet ik niet hoe deze nou precies inelkaar zit en hoe ik deze toe ken aan de link.
Overigens staan de links in een array.
de standaard achtergrond
de mouseover (:hover via css) achtergrond
de actieve achtergrond
De laatste afbeelding is dus degene die moet toegewezen worden aan de actieve link.
Even voor de duidelijkheid; CSS werkt hier dus niet, :active is als de linker-muisknop wordt ingedrukt.
(Internet Explorer 7.0, Firefox 2.0. Netscape 8.1 en Opera 9.02 allen mee getest)
De naam van de huidige pagina wordt door de volgende functie opgehaald:
JavaScript:
1
2
3
4
5
6
7
8
| function giveFilename () { var fileName = location.href; var name_array = fileName.split('/'); var fileIndex = name_array.length - 1; document.write(name_array[fileIndex]); } |
En dit is de code van het menu:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| var camcoMenu = new Array(); camcoMenu[0] = 'index.html'; camcoMenu[1] = 'news.html'; camcoMenu[2] = 'articles.html'; camcoMenu[3] = 'corporation.html'; camcoMenu[4] = 'members.html'; camcoMenu[5] = 'allies.html'; camcoMenu[6] = 'enemies.html'; camcoMenu[7] = 'starcharts.html'; camcoMenu[8] = 'misccharts.html'; camcoMenu[9] = 'links.html'; camcoMenu[10] = 'misc.html'; for (i = 0; i < camcoMenu.length; i++) { document.write('<A HREF="', camcoMenu[i], '" TARGET="_top">', camcoMenu[i], '</A>'); } |
De vraag is dus; hoe zorg ik dat de afbeelding voor de actieve link wordt toegewezen aan de link die naar de huidige pagina verwijst?
Stap 1 is als ik me niet vergis camcoMenu[i] vergelijken met giveFilename().
Stap 2 is het toekennen van de achtergrond afbeelding aan de desbetreffende link, maar hoe?
[ Voor 3% gewijzigd door NitroX infinity op 25-02-2007 19:42 ]
Graphene; a material that can do everything, except leave the lab. - Asianometry