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

In-beeld-animaties met data-in Nieuw

Eén kleine utility voor in-beeld-animaties: zet data-in="fade", "rise" of "scale" op een element en het komt met dezelfde duur, easing en stapvertraging in beeld. IntersectionObserver met de eigen scrollcontainer als root. Garantie: het verbergen staat alleen aan als JS draait én de bezoeker geen minder beweging vraagt, dus zonder JS of met reduced motion staat alles direct zichtbaar (test het met de schakelaar). Knoppen spelen elk preset opnieuw af.

Een bank kies je met je rug

Bij Woonwinkel Hofstede in Zwolle zit je eerst tien minuten op elke bank die je overweegt. Pas dan praten we over stof en kleur.

Antraciet velours bank in een lichte showroom

Levertijd voor banken op maat is zes tot acht weken. Bezorgen in Overijssel is gratis.

Eikenhouten eettafel met zes stoelenNotenhouten boekenkast in een woonkamer

Met minder beweging, of zonder JavaScript, staat al deze tekst direct in beeld.

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.
<!-- In-beeld-animaties met data-in · NedDev · eigen werk. -->
<div class="jouw-container">
<div class="ent">
<div class="ent__bar">
<div class="ent__btns" role="group" aria-label="Preset opnieuw afspelen"><button class="ent__b" type="button" data-play="fade">fade</button><button class="ent__b" type="button" data-play="rise">rise</button><button class="ent__b" type="button" data-play="scale">scale</button></div>
<label class="ent__opt"><input class="ent__rm" type="checkbox"><span>Minder beweging</span></label>
</div>
<div class="ent__sc" tabindex="0" aria-label="Voorbeeld: scroll om de in-beeld-animaties te zien">
<div class="ent__in">
<h3 class="ent__h" data-in="fade">Een bank kies je met je rug</h3>
<p class="ent__p" data-in="rise">Bij Woonwinkel Hofstede in Zwolle zit je eerst tien minuten op elke bank die je overweegt. Pas dan praten we over stof en kleur.</p>
<img class="ent__img" data-in="scale" src="https://neddev.com/lab-media/categorie-panelen-1.webp" alt="Antraciet velours bank in een lichte showroom" loading="lazy">
<p class="ent__p" data-in="rise">Levertijd voor banken op maat is zes tot acht weken. Bezorgen in Overijssel is gratis.</p>
<div class="ent__duo"><img class="ent__img" data-in="scale" src="https://neddev.com/lab-media/categorie-panelen-2.webp" alt="Eikenhouten eettafel met zes stoelen" loading="lazy"><img class="ent__img" data-in="scale" src="https://neddev.com/lab-media/categorie-panelen-3.webp" alt="Notenhouten boekenkast in een woonkamer" loading="lazy"></div>
<p class="ent__p" data-in="fade">Met minder beweging, of zonder JavaScript, staat al deze tekst direct in beeld.</p>
</div>
</div>
</div>
</div>

Meer uit scroll-effecten

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 →