drag the slider to see before and after!
(function(){ const wrap=document.getElementById('ba1'); const top=wrap.querySelector('.ba-top'); const handle=wrap.querySelector('.ba-handle'); let pressed=false; function setY(y){ const rect=wrap.getBoundingClientRect(); let pct=((y-rect.top)/rect.height)*100; pct=Math.max(0,Math.min(100,pct)); top.style.height=pct+'%'; handle.style.top=pct+'%'; } wrap.addEventListener('pointerdown',e=>{pressed=true;wrap.setPointerCapture(e.pointerId);setY(e.clientY)}); window.addEventListener('pointerup',()=>pressed=false); wrap.addEventListener('pointermove',e=>{if(pressed) setY(e.clientY)}); wrap.addEventListener('touchstart',e=>setY(e.touches[0].clientY)); wrap.addEventListener('touchmove',e=>{e.preventDefault();setY(e.touches[0].clientY)},{passive:false}); window.addEventListener('resize',()=>{const rect=wrap.getBoundingClientRect();setY(rect.top+rect.height/2);}); setY(wrap.getBoundingClientRect().top+wrap.getBoundingClientRect().height/2); })();