export function scrollInit(divName) { let scroller = new Scroller(divName); } class Scroller { constructor(divName) { this.elmnt = document.getElementById(divName); this.reachedMaxScroll = false; this.elmnt.scrollTop = 0; this.previousScrollTop = 0; this.scrollDiv(); this.elmnt.addEventListener("mouseover", () => { this.pauseScroll(); }); this.elmnt.addEventListener("mouseout", () => { this.resumeScroll(); }); } scrollDiv() { if (!this.reachedMaxScroll) { this.elmnt.scrollBy({ top: 5, left: 0, behavior: "smooth" }); this.reachedMaxScroll = this.elmnt.scrollTop >= this.elmnt.scrollHeight - this.elmnt.offsetHeight; this.scrollTimeout = setTimeout(() => { this.scrollDiv(); }, 100); } else { this.reachedMaxScroll = this.elmnt.scrollTop == 0 ? false : true; this.elmnt.scrollBy({ top: -5, left: 0, behavior: "smooth" }); this.scrollTimeout = setTimeout(() => { this.scrollDiv(); }, 100); } } pauseScroll() { clearInterval(this.scrollTimeout); } resumeScroll() { this.scrollDiv(); } }