Skip to content

Instantly share code, notes, and snippets.

@asci
Last active November 18, 2021 16:00
Show Gist options
  • Save asci/a466db193aef44fac462e76fc16a8d51 to your computer and use it in GitHub Desktop.
Save asci/a466db193aef44fac462e76fc16a8d51 to your computer and use it in GitHub Desktop.
Setting scroll progress to CSS variable
(() => {
const rootStyle = document.querySelector(":root").style;
const scrollMaxY = window.scrollMaxY || (document.documentElement.scrollHeight - document.documentElement.clientHeight);
rootStyle.setProperty("--scroll-y-max-position", scrollMaxY)
rootStyle.setProperty("--scroll-y-position", window.scrollY)
rootStyle.setProperty("--scroll-y-progress", scrollMaxY ? window.scrollY / scrollMaxY : 1)
document.addEventListener("scroll", () => {
rootStyle.setProperty("--scroll-y-position", window.scrollY)
rootStyle.setProperty("--scroll-y-progress", window.scrollY / scrollMaxY)
})
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment