Home Work
SaaS developmentAI developmentAPI developmentMobile app developmentGoogle Ads managementHeadless ShopifyLaravel developmentNext.js developmentReact developmentTypeScript engineeringUI/UX designSEO & AEOEcommerce development
AI solutionsB2B platformsE-commerceHospitalityLead generationLogisticsEducationProcess automationSaaS platformsStartup MVPReal estateHealthcare
LegalHealthcareReal estateFinanceHospitality
The HagueRotterdamAmsterdamUtrechtEindhovenAlmereBredaArnhemNijmegenTilburgEnschedeGroningenLeidenDelftZoetermeerDen Bosch
Studio
AboutProcessLabBlogContact

In-beeld-animaties met data-in New

One small utility for in-view animations: put data-in="fade", "rise" or "scale" on an element and it enters with the same duration, easing and stagger. IntersectionObserver with its own scroll container as root. Guarantee: hiding only applies when JS runs and the visitor does not ask for reduced motion, so without JS or with reduced motion everything is visible immediately (try the switch). Buttons replay each preset.

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.

How to use it

  1. Paste the HTML where the scroll effects should appear.
  2. Add the CSS to your stylesheet. All classes are prefixed, so nothing clashes with your own styles.
  3. Add the JavaScript and call init() with the element that contains the HTML.
<!-- 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>

More scroll effects

Seen something you like?

Add it to your selection and send it over. We build your site around it, in your brand.

Get in touch →