Hoi KREEFTMEIJER,
wat ik ook probeer als target, de foto opent altijd in nieuwe pagina
Dat klopt, want een gewone link linkt altijd naar een andere pagina of een ander bestand. Zo kan je niet iets op de pagina zelf veranderen.
Maar dat kan wel met een klein stukje javascript.
Wat je wilt is:
- Bij een klik op elk kleintje ...
- ... bepaal welke grote erbij hoort ...
- ... en wissel dan de bronverwijzing van de getoonde grote ...
- ... naar de bronverwijzing van de grote die bij het geklikte kleintje hoort.
Dit werkt als volgt.
Bij een klik op elk kleintje...
d.w.z. als je op een link een "onclick" uitvoert, zet dan de javascript-functie in werking.
... bepaal welke grote erbij hoort ...
d.w.z. zet in de functie een variabele, die de plaats van de grote foto aangeeft.
We noemen de functie
bigPhoto(), en bij elke link op een kleine foto komt dan tussen de haakjes de vindplaats van de grote foto te staan.
In de html wordt het daarmee bijvoorbeeld:
HTML:
<a href="#" onclick="bigPhoto('images/mtblanc.jpg');return false"><img src="images/mtblanc-thumb.png" alt="" /></a>
Het "return false" staat erbij omdat alleen de functie uitgevoerd moet worden, en niet naar het doel href="#" van de link gegaan moet worden.
Verder geef je in de html de (eerste) grote foto een ID als handvat voor het script:
HTML:
<img id="bigPhotoImg" src="images/alpen.jpg" alt="" />
Nu de functie zelf.
... en wissel dan de bronverwijzing van de getoonde grote ...
... naar de bronverwijzing van de grote die bij het geklikte kleintje hoort.
Eerst wordt de functie gedefinieerd met:
[JS]function bigPhoto(imgsrc) {
...
}[/JS]
Op de stippeltjes komt te staan wat er moet gebeuren. De "imgsrc" is een tijdelijke dummy-variabele, die bij het in werking zijn de in de html opgegeven bronverwijzing voorstelt. Op deze manier hoeft er niet voor elk kleintje een nieuwe functie geschreven te worden.
Nu pak je de de grote foto vast:
[JS]document.getElementById('bigPhotoImg')[/JS]
en dan vertel je dat de vindplaats (src) van de grote moet zijn: de in de html ingevulde vindplaats bij het bepaalde kleintje. En die hadden we in de dummy-variabele gezet.
[JS]document.getElementById('bigPhotoImg').src = imgsrc;[/JS]
Klaar! De hele functie luidt dus:
[JS]<script type="text/javascript">
function bigPhoto(imgsrc){
document.getElementById('bigPhotoImg').src = imgsrc;
}
</script>[/JS]
Dit scriptje zet je helemaal aan het eind van de html, vlak voor de </body>: dan geeft het geen oponthoud bij het laden van de pagina.
Met vriendelijke groet,
CSShunter