Spoedblok: bellen of foto's appen Nieuw
Spoed- en storingsblok voor een loodgieter, elektricien of glaszetter: twee even grote knoppen Bel en WhatsApp ("stuur foto's"), live 24/7-status, reactietijd en voorrijkosten die meeschuiven met het soort storing en met dag of nacht. De WhatsApp-link vult het bericht vooraf in via wa.me?text=. Keuze via echte radioknoppen, tips in een native details-element. Staten: overdag, avond en nacht (demo-knoppen).
Nu bereikbaar3 monteurs onderweg in Rotterdam
Lekkage, verstopping of geen stroom? Bel of app, wij komen.
- Reactietijd
- 45 mingemiddeld tot de monteur bij je is (sep 2026)
- Voorrijden
- € 49overdag op werkdagen, excl. arbeid
Een foto van de lekkage, de meterkast of het display van de ketel helpt: dan neemt de monteur meteen het goede onderdeel mee.
Wat kun je zelf alvast doen?
Meldingen vandaag
- Lekkage · Kralingenter plaatse 14:51
- Groep valt uit · Hillegersbergopgelost 12:58
- Verstopte afvoer · Delfshavenopgelost 09:10
Demo, tijdstip
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.
<!-- Spoedblok: bellen of foto's appen · NedDev · eigen werk. -->
<div class="jouw-container">
<div class="sbw">
<div class="sbw__in">
<div class="sbw__main">
<p class="sbw__live"><i class="sbw__dot" aria-hidden="true"></i><b class="sbw__st">Nu bereikbaar</b><span class="sbw__crew">3 monteurs onderweg in Rotterdam</span></p>
<h2 class="sbw__h">Lekkage, verstopping of geen stroom? Bel of app, wij komen.</h2>
<fieldset class="sbw__set">
<legend class="sbw__lbl">Wat is er aan de hand?</legend>
<div class="sbw__chips">
<label class="sbw__chip"><input type="radio" name="sbw-type" value="lek" checked><span>Lekkage</span></label>
<label class="sbw__chip"><input type="radio" name="sbw-type" value="verstop"><span>Verstopping</span></label>
<label class="sbw__chip"><input type="radio" name="sbw-type" value="stroom"><span>Stroomstoring</span></label>
<label class="sbw__chip"><input type="radio" name="sbw-type" value="cv"><span>Cv-ketel</span></label>
</div>
</fieldset>
<dl class="sbw__nums" aria-live="polite">
<div><dt>Reactietijd</dt><dd><b class="sbw__rt">45 min</b><span>gemiddeld tot de monteur bij je is (sep 2026)</span></dd></div>
<div><dt>Voorrijden</dt><dd><b class="sbw__vr">€ 49</b><span class="sbw__vr-s">overdag op werkdagen, excl. arbeid</span></dd></div>
</dl>
<div class="sbw__btns">
<a class="sbw__btn sbw__btn--bel" href="tel:+31103402270"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M6.5 3.5h3l1.5 4.3-2.2 1.4a11 11 0 0 0 6 6l1.4-2.2 4.3 1.5v3a2 2 0 0 1-2.1 2C10.8 19 5 13.2 4.5 5.6a2 2 0 0 1 2-2.1z"/></svg><span><small>Bel direct, ook nu</small>010 340 22 70</span></a>
<a class="sbw__btn sbw__btn--wa" href="#" target="_blank" rel="noopener"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M4 20l1.2-3.8A8 8 0 1 1 8 19z"/><path d="M9 8.5c0 3 2.5 6 6 6.5l1-1.6-2-1-1 1c-1-.4-2.2-1.6-2.6-2.6l1-1-1-2z"/></svg><span><small>WhatsApp, stuur foto's</small>Open WhatsApp</span></a>
</div>
<p class="sbw__note">Een foto van de lekkage, de meterkast of het display van de ketel helpt: dan neemt de monteur meteen het goede onderdeel mee.</p>
<details class="sbw__tips"><summary>Wat kun je zelf alvast doen?</summary><ul class="sbw__tip-l"></ul></details>
</div>
<div class="sbw__side">
<img src="https://neddev.com/lab-media/spoed-bel-whatsapp-1.webp" alt="Monteur draait een lekkende leiding onder een aanrecht vast" loading="lazy">
<div class="sbw__log">
<p class="sbw__log-h">Meldingen vandaag</p>
<ol>
<li><time>14:12</time><span>Lekkage · Kralingen</span><em>ter plaatse 14:51</em></li>
<li><time>11:40</time><span>Groep valt uit · Hillegersberg</span><em>opgelost 12:58</em></li>
<li><time>08:05</time><span>Verstopte afvoer · Delfshaven</span><em>opgelost 09:10</em></li>
</ol>
</div>
</div>
</div>
<div class="sbw__demo"><span>Demo, tijdstip</span><button type="button" data-sbw="nu" aria-pressed="true">nu</button><button type="button" data-sbw="11" aria-pressed="false">di 11:00</button><button type="button" data-sbw="20" aria-pressed="false">di 20:00</button><button type="button" data-sbw="3" aria-pressed="false">wo 03:00</button></div>
</div>
</div>/* Spoedblok: bellen of foto's appen · NedDev · eigen werk. */
/* fonts (Fontshare): supreme@400,500,700,800 */
.sbw{--sbw-bg:#141619;--sbw-panel:#1d2024;--sbw-y:#ffd23f;--sbw-y2:#ffdf6b;--sbw-wa:#1b7a44;--sbw-wa2:#16683a;--sbw-line:#2d3137;--sbw-mut:#a9afb8;background:var(--sbw-bg);color:#f3f4f6;font-family:'Supreme',sans-serif;box-sizing:border-box}
.sbw *,.sbw *::before,.sbw *::after{box-sizing:border-box}
.sbw a:focus-visible,.sbw button:focus-visible,.sbw summary:focus-visible{outline:2px solid var(--sbw-y);outline-offset:3px}
.sbw__in{max-width:1200px;margin:0 auto;padding:44px 32px 24px;display:grid;grid-template-columns:1.15fr .85fr;gap:44px}
.sbw__live{display:inline-flex;align-items:center;gap:10px;margin:0 0 18px;padding:7px 12px;border:1px solid var(--sbw-line);border-radius:999px;font-size:13.5px}
.sbw__crew{color:var(--sbw-mut)}
.sbw__dot{width:9px;height:9px;border-radius:50%;background:#3ddc84;box-shadow:0 0 0 0 rgba(61,220,132,.55);animation:sbw-p 2.2s infinite}
.sbw[data-tijd=nacht] .sbw__dot{background:var(--sbw-y);animation-name:sbw-py}
@keyframes sbw-p{70%{box-shadow:0 0 0 8px rgba(61,220,132,0)}100%{box-shadow:0 0 0 0 rgba(61,220,132,0)}}
@keyframes sbw-py{70%{box-shadow:0 0 0 8px rgba(255,210,63,0)}100%{box-shadow:0 0 0 0 rgba(255,210,63,0)}}
.sbw__h{font-weight:800;font-size:clamp(28px,3.4vw,44px);line-height:1.04;letter-spacing:-.02em;margin:0 0 22px;max-width:20ch}
.sbw__set{border:0;margin:0 0 20px;padding:0;min-width:0}
.sbw__lbl{font-size:13px;font-weight:700;color:var(--sbw-mut);padding:0;margin:0 0 8px}
.sbw__chips{display:flex;flex-wrap:wrap;gap:8px}
.sbw__chip{position:relative}
.sbw__chip input{position:absolute;opacity:0;width:1px;height:1px}
.sbw__chip span{display:block;padding:9px 16px;border:1.5px solid var(--sbw-line);border-radius:4px;font-size:15px;font-weight:500;cursor:pointer;transition:border-color .16s,background-color .16s,color .16s}
.sbw__chip span:hover{border-color:#5b616a}
.sbw__chip input:checked+span{background:#f3f4f6;color:#141619;border-color:#f3f4f6;font-weight:700}
.sbw__chip input:focus-visible+span{outline:2px solid var(--sbw-y);outline-offset:2px}
.sbw__nums{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:0 0 20px;border-top:1px solid var(--sbw-line);border-bottom:1px solid var(--sbw-line)}
.sbw__nums div{padding:14px 0}
.sbw__nums div+div{padding-left:20px;border-left:1px solid var(--sbw-line)}
.sbw__nums dt{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--sbw-mut);margin-bottom:4px}
.sbw__nums dd{margin:0}
.sbw__nums b{display:block;font-size:30px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--sbw-y);line-height:1.1}
.sbw__nums span{font-size:13px;color:var(--sbw-mut)}
.sbw__btns{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.sbw__btn{display:flex;align-items:center;gap:14px;padding:14px 18px;border-radius:6px;text-decoration:none;font-weight:800;font-size:20px;font-variant-numeric:tabular-nums;transition:background-color .16s}
.sbw__btn small{display:block;font-size:13px;font-weight:500;opacity:.85;margin-bottom:1px}
.sbw__btn svg{width:30px;height:30px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.sbw__btn--bel{background:var(--sbw-y);color:#141619}
.sbw__btn--bel:hover{background:var(--sbw-y2)}
.sbw__btn--wa{background:var(--sbw-wa);color:#fff}
.sbw__btn--wa:hover{background:var(--sbw-wa2)}
.sbw__btn:active{transform:translateY(1px)}
.sbw__note{margin:12px 0 0;font-size:14px;line-height:1.5;color:var(--sbw-mut);max-width:60ch}
.sbw__tips{margin-top:14px;border-top:1px solid var(--sbw-line);padding-top:10px}
.sbw__tips summary{cursor:pointer;font-weight:700;font-size:15px;list-style:none;display:flex;align-items:center;gap:8px;padding:4px 0}
.sbw__tips summary::-webkit-details-marker{display:none}
.sbw__tips summary::before{content:"+";display:grid;place-items:center;width:20px;height:20px;border:1.5px solid var(--sbw-line);border-radius:3px;font-size:14px;transition:transform .2s}
.sbw__tips[open] summary::before{content:"\2212"}
.sbw__tip-l{margin:8px 0 0;padding-left:20px;font-size:14px;line-height:1.6;color:#d6d9de}
.sbw__side{position:relative;border-radius:6px;overflow:hidden;min-height:380px;background:var(--sbw-panel)}
.sbw__side img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.85)}
.sbw__log{position:absolute;left:14px;right:14px;bottom:14px;background:rgba(20,22,25,.92);border:1px solid var(--sbw-line);border-radius:6px;padding:12px 14px}
.sbw__log-h{margin:0 0 6px;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--sbw-mut)}
.sbw__log ol{list-style:none;margin:0;padding:0}
.sbw__log li{display:grid;grid-template-columns:48px 1fr auto;gap:8px;padding:6px 0;font-size:13.5px;border-top:1px solid var(--sbw-line)}
.sbw__log li:first-child{border-top:0}
.sbw__log time{font-variant-numeric:tabular-nums;color:var(--sbw-y);font-weight:700}
.sbw__log em{font-style:normal;color:var(--sbw-mut);font-size:12.5px}
.sbw__demo{max-width:1200px;margin:0 auto;padding:0 32px 20px;display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:12px;color:var(--sbw-mut)}
.sbw__demo span{font-weight:700;margin-right:4px}
.sbw__demo button{font:500 12px 'Supreme',sans-serif;border:1px solid var(--sbw-line);background:transparent;color:#f3f4f6;border-radius:999px;padding:5px 11px;cursor:pointer;transition:border-color .16s}
.sbw__demo button:hover{border-color:#6b7280}
.sbw__demo button[aria-pressed=true]{background:#f3f4f6;color:#141619}
@media (max-width:900px){.sbw__in{grid-template-columns:1fr;padding:28px 16px 18px;gap:24px}.sbw__side{min-height:300px}.sbw__demo{padding:0 16px 18px}}
@media (max-width:560px){.sbw__btns{grid-template-columns:1fr}.sbw__crew{display:none}.sbw__nums b{font-size:24px}.sbw__nums div+div{padding-left:14px}.sbw__log li{grid-template-columns:44px 1fr}.sbw__log em{grid-column:2}}
@media (prefers-reduced-motion:reduce){.sbw *{animation:none!important;transition:none!important}}// Spoedblok: bellen of foto's appen · NedDev · eigen werk.
// root = het element waarin de HTML staat
function init(root){
var w=root.querySelector('.sbw');if(!w)return;
var T={lek:{n:'lekkage',rt:45,tips:['Draai de hoofdkraan dicht, die zit meestal bij de watermeter in de meterkast.','Zet de stroom uit als er water bij stopcontacten of lampen komt.','Leg handdoeken neer en maak een foto van de plek waar het lekt.']},
verstop:{n:'verstopping',rt:60,tips:['Spoel niet nog een keer door, dan loopt het over.','Gebruik geen ontstopper uit de supermarkt, die beschadigt pvc-leidingen.','Kijk of andere afvoeren in huis ook traag zijn en vertel ons dat.']},
stroom:{n:'stroomstoring',rt:50,tips:['Kijk in de meterkast welke groep of aardlekschakelaar uit staat.','Haal alle stekkers uit die groep en zet de schakelaar een keer terug.','Valt hij meteen weer uit? Laat hem uit staan en bel ons.']},
cv:{n:'storing aan de cv-ketel',rt:90,tips:['Kijk of de waterdruk op de ketel tussen 1,5 en 2 bar staat.','Druk een keer op de resetknop, niet vaker.','Maak een foto van de foutcode op het display.']}};
var fake=null,rt=w.querySelector('.sbw__rt'),vr=w.querySelector('.sbw__vr'),vrs=w.querySelector('.sbw__vr-s'),st=w.querySelector('.sbw__st'),crew=w.querySelector('.sbw__crew'),wa=w.querySelector('.sbw__btn--wa'),tl=w.querySelector('.sbw__tip-l');
function dag(){var d=new Date(),h=d.getHours(),wd=d.getDay();if(fake!==null){h=fake;wd=fake===3?3:2;}
if(h>=22||h<7)return 'nacht';if(h>=18||wd===0||wd===6)return 'avond';return 'dag';}
function paint(){
var k=w.querySelector('input[name=sbw-type]:checked').value,t=T[k],d=dag();
w.setAttribute('data-tijd',d);
var extra=d==='nacht'?30:d==='avond'?10:0;
rt.textContent=(t.rt+extra)+' min';
vr.textContent=d==='nacht'?'€ 129':d==='avond'?'€ 89':'€ 49';
vrs.textContent=d==='nacht'?'nachttarief tussen 22:00 en 7:00':d==='avond'?'avond en weekend, excl. arbeid':'overdag op werkdagen, excl. arbeid';
st.textContent=d==='nacht'?'Nachtdienst':'Nu bereikbaar';
crew.textContent=d==='nacht'?'1 monteur paraat voor heel Rotterdam':d==='avond'?'2 monteurs onderweg in Rotterdam':'3 monteurs onderweg in Rotterdam';
wa.href='https://wa.me/31103402270?text='+encodeURIComponent('Hallo, ik heb een '+t.n+'. Ik stuur foto\'s mee. Mijn adres is: ');
tl.innerHTML=t.tips.map(function(x){return '<li>'+x+'</li>';}).join('');
}
w.addEventListener('change',function(e){if(e.target.name==='sbw-type')paint();});
w.querySelector('.sbw__demo').addEventListener('click',function(e){var b=e.target.closest('[data-sbw]');if(!b)return;
[].forEach.call(w.querySelectorAll('[data-sbw]'),function(x){x.setAttribute('aria-pressed',x===b?'true':'false');});
var v=b.getAttribute('data-sbw');fake=v==='nu'?null:+v;paint();});
paint();
}
init(document.querySelector('.jouw-container'));
Meer uit paginasecties
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 →