/** * A utility that aims to replace jQuery for the most basic DOM methods. */ export const $ = { scrollTo (el: Element, to: number, duration: number, cb?: Closure) { if (duration <= 0 || !el) { return } const difference = to - el.scrollTop const perTick = difference / duration * 10 window.setTimeout(() => { el.scrollTop = el.scrollTop + perTick if (el.scrollTop === to) { cb && cb() return } this.scrollTo(el, to, duration - 10) }, 10) }, }