CODE
function scrollTo<T extends () => void>(offset: number, callback: T) {
const fixedOffset = offset.toFixed();
const onScroll = function () {
if (window.pageYOffset.toFixed() === fixedOffset) {
window.removeEventListener("scroll", onScroll);
callback();
}
};
window.addEventListener("scroll", onScroll);
onScroll();
window.scrollTo({
top: offset,
behavior: "smooth",
});
}
function scrollTo<T extends () => void>(offset: number, callback: T) {
const fixedOffset = offset.toFixed();
const onScroll = function () {
if (window.pageYOffset.toFixed() === fixedOffset) {
window.removeEventListener("scroll", onScroll);
callback();
}
};
window.addEventListener("scroll", onScroll);
onScroll();
window.scrollTo({
top: offset,
behavior: "smooth",
});
}