Refresh ScrollTrigger On Scroll Into View
Utility
Scroll
GSAP
ScrollTrigger
JS
- Give an element or section the attribute name of data-refresh-scrolltrigger
- When the element first enters view, it will refresh ScrollTrigger's markers
- This is helpful if ScrollTrigger's positions are getting out of sync from the page height changing.
<script>
document.addEventListener("DOMContentLoaded", () => {
if (typeof ScrollTrigger === "undefined") return;
document.querySelectorAll("[data-refresh-scrolltrigger]").forEach(target => {
const observer = new IntersectionObserver((entries, observerInstance) => {
entries.forEach(entry => {
if (!entry.isIntersecting) return;
ScrollTrigger.refresh();
observerInstance.unobserve(entry.target);
});
}, { threshold: 0.1 });
observer.observe(target);
});
});
</script>Preview Links
Custom JS
Enable custom code in preview or view on published site.
Enable custom code?
Last Updated: Dec 3, 2025
- Give an element or section the attribute name of data-refresh-scrolltrigger
- When the element first enters view, it will refresh ScrollTrigger's markers
- This is helpful if ScrollTrigger's positions are getting out of sync from the page height changing.
<script>
document.addEventListener("DOMContentLoaded", () => {
if (typeof ScrollTrigger === "undefined") return;
document.querySelectorAll("[data-refresh-scrolltrigger]").forEach(target => {
const observer = new IntersectionObserver((entries, observerInstance) => {
entries.forEach(entry => {
if (!entry.isIntersecting) return;
ScrollTrigger.refresh();
observerInstance.unobserve(entry.target);
});
}, { threshold: 0.1 });
observer.observe(target);
});
});
</script>