Gordijn-overgang tussen pagina's Nieuw
Vijf oranje banen sluiten gestaffeld over de pagina, de inhoud wisselt en de banen trekken weer op. Voor een site die als één geheel moet voelen.
Bouwbedrijf · Delft
Verbouwen zonder verrassingen.
Vaste prijs vooraf, één aanspreekpunt en oplevering op de afgesproken dag.
Diensten
- Dakkapel plaatsenvanaf € 7.950
- Badkamer compleetvanaf € 11.500
- Aanbouw 3 x 4 metervanaf € 39.000
Contact
Kom langs in de werkplaats.
Rotterdamseweg 212, Delft · 015 123 4567 · info@voorbeeld.nl
Zo gebruik je het
- Plak de HTML op de plek waar het onderdeel moet komen.
- Zet de CSS in je stylesheet. Alle klassen hebben een eigen voorvoegsel, dus niets botst met je eigen opmaak.
- Voeg de JavaScript toe en roep init() aan met het element waar de HTML in staat.
<!-- Gordijn-overgang tussen pagina's · NedDev · eigen werk. -->
<div class="jouw-container">
<div class="pgc"><div class="pgc__bar"><span class="pgc__logo">Verhoef<b>.</b></span><div class="pgc__nav"><button class="pgc__lnk is-on" type="button">Home</button><button class="pgc__lnk" type="button">Diensten</button><button class="pgc__lnk" type="button">Contact</button></div></div>
<div class="pgc__view">
<div class="pgc__pg is-on"><span class="pgc__k">Bouwbedrijf · Delft</span><h4 class="pgc__h">Verbouwen zonder verrassingen.</h4><p class="pgc__p">Vaste prijs vooraf, één aanspreekpunt en oplevering op de afgesproken dag.</p></div>
<div class="pgc__pg pgc__pg--b"><span class="pgc__k">Diensten</span><ul class="pgc__ul"><li><span>Dakkapel plaatsen</span><em>vanaf € 7.950</em></li><li><span>Badkamer compleet</span><em>vanaf € 11.500</em></li><li><span>Aanbouw 3 x 4 meter</span><em>vanaf € 39.000</em></li></ul></div>
<div class="pgc__pg pgc__pg--c"><span class="pgc__k">Contact</span><h4 class="pgc__h">Kom langs in de werkplaats.</h4><p class="pgc__p">Rotterdamseweg 212, Delft · 015 123 4567 · info@voorbeeld.nl</p></div>
</div><div class="pgc__cur" aria-hidden="true"><i></i><i></i><i></i><i></i><i></i></div></div>
</div>/* Gordijn-overgang tussen pagina's · NedDev · eigen werk. */
.pgc{position:absolute;inset:0;background:#fff;color:#0a0a0a;font-family:'Switzer',system-ui,sans-serif;display:flex;flex-direction:column;overflow:hidden;container-type:inline-size}
.pgc__bar{display:flex;align-items:center;justify-content:space-between;padding:9px 12px;border-bottom:1px solid #e6e3de;background:#fff;position:relative;z-index:3}
.pgc__logo{font-weight:800;font-size:14px;letter-spacing:-.02em}.pgc__logo b{color:#F5480F}
.pgc__nav{display:flex;gap:2px}
.pgc__lnk{appearance:none;border:0;background:none;font:500 12px 'Switzer',sans-serif;color:#6b6762;padding:5px 9px;border-radius:999px;cursor:pointer;transition:color .2s,background .2s}
.pgc__lnk:hover{color:#0a0a0a}.pgc__lnk.is-on{background:#0a0a0a;color:#fff}
.pgc__lnk:focus-visible{outline:2px solid #F5480F;outline-offset:2px}
.pgc__view{position:relative;flex:1}
.pgc__pg{position:absolute;inset:0;padding:14px 16px;display:flex;flex-direction:column;justify-content:center;gap:7px;visibility:hidden}
.pgc__pg.is-on{visibility:visible}
.pgc__pg--b{background:#f4f3f1}.pgc__pg--c{background:#0a0a0a;color:#fff}
.pgc__k{font:500 10px 'JetBrains Mono',monospace;letter-spacing:.12em;text-transform:uppercase;color:#F5480F}
.pgc__h{margin:0;font:700 clamp(19px,6.4cqw,27px)/1.08 'Switzer',sans-serif;letter-spacing:-.03em;max-width:15em}
.pgc__p{margin:0;font-size:12px;line-height:1.45;color:#57534e;max-width:30em}.pgc__pg--c .pgc__p{color:#bdb8b1}
.pgc__ul{list-style:none;margin:0;padding:0}
.pgc__ul li{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:8px 0;border-top:1px solid #dcd8d2;font-size:13px;font-weight:600}
.pgc__ul li:last-child{border-bottom:1px solid #dcd8d2}
.pgc__ul em{font:500 11px 'JetBrains Mono',monospace;font-style:normal;color:#57534e;font-variant-numeric:tabular-nums}
.pgc__pg.is-on>*{animation:pgc-in .55s cubic-bezier(.2,.7,.2,1) both}
.pgc__pg.is-on>*:nth-child(2){animation-delay:.06s}.pgc__pg.is-on>*:nth-child(3){animation-delay:.12s}
@keyframes pgc-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.pgc__cur{position:absolute;left:0;right:0;bottom:0;top:39px;display:flex;z-index:4;pointer-events:none}
.pgc__cur i{flex:1;background:#F5480F;transform:scaleY(0);transform-origin:50% 100%;transition:transform .42s cubic-bezier(.7,0,.3,1)}
.pgc__cur i+i{margin-left:-1px}
@media (prefers-reduced-motion:reduce){.pgc__pg.is-on>*{animation:none}.pgc__cur{display:none}}// Gordijn-overgang tussen pagina's · NedDev · eigen werk.
// root = het element waarin de HTML staat
function init(root){
root=root.querySelector('.pgc')||root;
var rm=matchMedia('(prefers-reduced-motion: reduce)').matches;
var links=[].slice.call(root.querySelectorAll('.pgc__lnk')),pages=[].slice.call(root.querySelectorAll('.pgc__pg')),bars=[].slice.call(root.querySelectorAll('.pgc__cur i'));
var cur=0,busy=false,auto=!rm,timer=0,ST=55;
function show(n){pages.forEach(function(p,i){p.classList.toggle('is-on',i===n);});links.forEach(function(l,i){l.classList.toggle('is-on',i===n);l.setAttribute('aria-current',i===n?'page':'false');});cur=n;}
function set(o,s){bars.forEach(function(b,i){b.style.transformOrigin=o;b.style.transitionDelay=(i*ST)+'ms';b.style.transform=s;});}
function go(n){if(busy||n===cur)return;if(rm){show(n);return;}busy=true;set('50% 100%','scaleY(1)');
setTimeout(function(){show(n);set('50% 0%','scaleY(0)');setTimeout(function(){busy=false;},420+bars.length*ST);},420+bars.length*ST);}
links.forEach(function(l,i){l.addEventListener('click',function(){auto=false;clearTimeout(timer);go(i);});});
function loop(){timer=setTimeout(function(){if(!auto)return;go((cur+1)%pages.length);loop();},2800);}
if(auto)loop();
}
init(document.querySelector('.jouw-container'));
Meer uit navigatie & menu's
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 →