// Created on savesnippets.com ยท https://savesnippets.com/HgVLVqgGmcArdb export function throttle( fn: (...args: Args) => void, interval: number, ): (...args: Args) => void { let nextAllowed = 0; return (...args) => { const now = Date.now(); if (now >= nextAllowed) { nextAllowed = now + interval; fn(...args); } }; } const onScroll = throttle(() => { console.log('scroll y =', window.scrollY); }, 100); window.addEventListener('scroll', onScroll); // fires at most every 100ms