Website-galery :: script, voorbeeld & beschrijving

Van klein naar groot: vergroten van foto's en afbeeldingen op webpagina's

Ook voor Internet Explorer!

De beschrijving staat onderaan.

Klik om de afbeeldingen te vergroten

Beschrijving

Van elke grote afbeelding (bv. big1.png) is als thumbnail een mini-versie van 75x51px (of: 51x75px voor staande afbeeldingen) gemaakt (bv. mini1.png).

Alle gewone inhoud van deze pagina, met de mini's, zit in een container <div id="everything">...</div>.

Los hiervan is er nog één container in de body: de <div id="bigBox">...</div>.

De #bigBox is leeg in de html, en wordt dynamisch gevuld met javascript als op een kleine afbeelding geklikt wordt.

css

De dia-raampjes (liggend en staand) en het projectiescherm bij hoveren zitten in één background-img (dia-bg105x105x3.gif), dat met css bediend wordt.
Voor de achtergrond van de grote afbeeldingen is hier een ander background-img gebruikt, maar dat hoeft niet (of er kan bij de grote afbeeldingen ook gekozen worden voor een andere achtergrondkleur).
Het gebruikte stylesheet is small-to-big.css, en maar 2.5kB groot (inclusief de rest van de pagina-opmaak).

javascript

Als javascript uit staat, wordt de grote afbeelding weergegeven op een nieuwe pagina.

Als javascript aan staat, wordt #everything onzichtbaar gemaakt met { display: none; }, en de #bigBox zichtbaar gemaakt met { display: block; }.

Tegelijkertijd wordt bij de klik op de kleine afbeelding de grote afbeelding gedownload in de #bigBox, met een mechaniekje om makkelijk terug te klikken en weer op dezelfde hoogte van de kleine afbeelding uit te komen.

Het gebruikte javascript is small-to-big.js, en maar 4.5kB groot.
Dit zorgt er o.a. ook voor dat een onclick eigenschap aan de kleine afbeeldingen wordt vastgemaakt om de grote afbeeldingen op te roepen. Dat is in de html minder tikwerk!

html

Er kan nu voor de plaatjesgalerij steeds volstaan worden met het aangeven van waar de grote en kleine afbeeldingen zich bevinden:

<div id="galery">
   <a href="images/big1.jpg"><img src="images/mini1.png" alt=""></a>
   <a href="images/big2.jpg"><img src="images/mini2.png" alt=""></a>
   <a href="images/big3.jpg"><img src="images/mini3.png" alt=""></a>
   ... enz.
</div>

De afbeeldingen hoeven niet in dezelfde map te zitten, en mogen ook andere namen hebben (eigen namen in plaats van de abstracte nummeraanduidingen). Ze hoeven ook niet steeds van dezelfde soort te zijn (jpg's, gif's en png's kunnen door elkaar gebruikt worden).
Voor staande afbeeldingen moet (in de hier gebruikte dia-opmaak) alleen een class toegevoegd worden:

   <a class="staand" href="images/big6.png"><img src="images/mini6.png" alt=""></a>

De gebruikte html staat in de broncode van deze pagina (of hier). Er is alleen php gebruikt om er een php-header aan toe te voegen voor de karakterset (is wenselijk, maar niet noodzakelijk; zie hier).

verdere toelichting

Verdere toelichting is te vinden in de commentaarregels in de broncode van de html, css en het javascript.

evaluatie

De code is valid html en valid css.

De pagina komt ook met een score 47/47 door de automatisch toetsbare richtlijnen van de Quickscan Kwaliteitsmodel Webrichtlijnen. Het javascript is zogenaamd 'unobtrusive javascript' (niet-in-de-weg-staand javascript, zie hier voor uitleg).