Een fotomuur
Een oefening om afbeeldingen van verschillend formaat zonder 'gaten' weer te geven.
De strategie bestaat er uit afbeeldingen in een rij-element toe te voegen.
Vervolgens controleer je of de gewesnte breedte is overschreden.
In dat geval zet je de volgende afbeelding in een nieuwe rij en schaal de te grote rij totdat hij past.
Leerdoelen
- DOM manipulatie met JS;
- array-bewerking;
- functies op elkaar afstemmen;
- eenvoudige flexbox toepassing.
maak er geen typecursus van:
- werk met eigen namen voor variabelen en functies;
- voeg zelf relevant commentaar toe.
In het plan moeten de afbeeldingen in meerdere rijen komen.
Als een rij vol is krijgt hij een andere class-naam.
Om het in beeld te houden krijgen de te volle rijen een te kleine hoogte zodat ze in beeld blijven.
Het script moet beslissen of de gewenste breedte is overschreden.
Daarvoor moet eerst gewacht worden op het load-event van de afbeelding. Pas dan kan immers de breedte van de afbeelding door JS worden vastgesteld. In een variabele wordt bijgehouden hoeveel breedte de afbeeldingen in de rij samen hebben.
Wordt de gewenste breedte overschreden (if-statement) dan wordt:
- de class-naam van ‘rij’ omgezet naar ‘klaar’
- de variabele gereset
- een nieuwe rij gemaakt met de class-naam rij. Daar komen dan de nieuwe afbeeldingen in.
In de stijl heeft een rij die vol is de eigenschap display:flex
. Hierdoor zal de rij nooit afbreken omdat deze te groot is. Voorlopig maken we met CSS de hoogte wat extra klein om de rij te kunnen overzien.
De afbeeldingen in die rij krijgen een hoogte van 100%.