Home Werk
SaaS bouwenAI developmentAPI developmentMobile app developmentGoogle Ads managementHeadless ShopifyLaravel developmentNext.js developmentReact developmentTypeScript engineeringUI/UX designSEO & AEOWebshop bouwen
AI-oplossingenB2B-platformsE-commerceHorecaLead generationLogistiekOnderwijsProcesautomatiseringSaaS-platformsStartup MVPVastgoedZorg
JuridischZorgVastgoedFinanceHoreca
Den HaagRotterdamAmsterdamUtrechtEindhovenAlmereBredaArnhemNijmegenTilburgEnschedeGroningenLeidenDelftZoetermeerDen Bosch
Studio
OverWerkwijzeLabBlogContact

Afbeelding laadt met blur-up Nieuw

Terwijl een foto laadt zie je een wazige mini-versie (LQIP van 20 px, ca. 250 bytes als data-URI in de HTML); zodra het echte beeld binnen is vloeit het van wazig naar scherp. loading="lazy" + decoding="async" + een onload-klasse, werkt overal; mislukt het laden dan volgt een nette foutstaat met "Opnieuw". De demo vertraagt het laden kunstmatig zodat je de overgang ziet.

Duinpad naar het strand bij Zandvoort
Zandvoort
Koffie en appeltaart op een terras
Delft
Fietsers op een brede straat in Rotterdam
Rotterdam

Zo gebruik je het

  1. Plak de HTML op de plek waar het onderdeel moet komen.
  2. Zet de CSS in je stylesheet. Alle klassen hebben een eigen voorvoegsel, dus niets botst met je eigen opmaak.
  3. Voeg de JavaScript toe en roep init() aan met het element waar de HTML in staat.
<!-- Afbeelding laadt met blur-up · NedDev · eigen werk. -->
<div class="jouw-container">
<div class="lbu">
  <div class="lbu__grid">
    <figure class="lbu__f" style="--lq:url(data:image/webp;base64,UklGRpwAAABXRUJQVlA4IJAAAAAQBACdASoUAAsAPpE4l0eloyIhMAgAsBIJZgCdACKykofffM4kLoKgTAD+6uX6y856gDSIOZ/NUYa0y+ZXklCHo1e/g4m/mRefSrbAgqOLg797I6J6pD6Ws2GpQ3s28+AW8loz5kj879cf3ISW7blIK4tZPMaA7pEebZiUMfzcbXuvR+K/DhtZNaLQWPwSAAA=)"><img alt="Duinpad naar het strand bij Zandvoort" width="900" height="491" decoding="async" loading="lazy" data-src="https://neddev.com/lab-media/lazy-blur-up-1.webp"><div class="lbu__err" role="alert" hidden><span>Foto niet geladen</span><button type="button" class="lbu__retry">Opnieuw</button></div><figcaption>Zandvoort</figcaption></figure>
    <figure class="lbu__f" style="--lq:url(data:image/webp;base64,UklGRqwAAABXRUJQVlA4IKAAAABQBACdASoUAAsAPpE6l0eloyIhMAgAsBIJYwCdAYu47QcfjFaWX53Czac4AP7Ce50Au9PjO0hoSpALtQlT37DTfApovSyqNgx7y14vdXdj+rVQ59ER9U4kEJXWUm66v6TBDLGClx/neBH7Y99tKMKFmkFsXL/GCBbWizBPkSJCU4GbOsgFuey61YyuyXEhfIIMAlJ7tSBppB837hGsAAAA)"><img alt="Koffie en appeltaart op een terras" width="900" height="491" decoding="async" loading="lazy" data-src="https://neddev.com/lab-media/lazy-blur-up-2.webp"><div class="lbu__err" role="alert" hidden><span>Foto niet geladen</span><button type="button" class="lbu__retry">Opnieuw</button></div><figcaption>Delft</figcaption></figure>
    <figure class="lbu__f" style="--lq:url(data:image/webp;base64,UklGRqgAAABXRUJQVlA4IJwAAACQAwCdASoUAAsAPpE6mEeloyKhMAgAsBIJZQATgABhCxOL53bwAP3D+0RO8JAjTOEbmNJNfsR6usbaNte9vtIYQK9L87/6V+7T5oR9TRF+mBLWb3/Tp6vu3l4k4PfUTfJnibMYsyM62R7M3CIMWOXx4s0f3zos3DUpGTrQNHRVLTgIGv7qpBU9B65QT+nCVTUQlqBz9wXrxDQAAAA=)"><img alt="Fietsers op een brede straat in Rotterdam" width="900" height="491" decoding="async" loading="lazy" data-src="https://neddev.com/lab-media/lazy-blur-up-3.webp"><div class="lbu__err" role="alert" hidden><span>Foto niet geladen</span><button type="button" class="lbu__retry">Opnieuw</button></div><figcaption>Rotterdam</figcaption></figure>
  </div>
  <div class="lbu__ctl"><button class="lbu__b" type="button" data-a="reload">Opnieuw laden</button><button class="lbu__b" type="button" data-a="err">Toon foutstaat</button><span class="lbu__st" aria-live="polite"></span></div>
</div>
</div>

Meer uit componenten

Iets gezien dat je mooi vindt?

Zet het in je selectie en stuur hem op. Dan bouwen we je site eromheen, in jouw huisstijl.

Neem contact op →