For the slide I had used a snippet of code of a codepen demo with scrolltrigger and scrollTo:
let sections = gsap.utils.toArray(".scroller-sections"),
scrollTween;
function goToSection(i) {
scrollTween = gsap.to(window, {
scrollTo: {y: i * window.innerHeight, autoKill: false},
duration: 1,
ease: "expo.out",
onComplete: () => {
scrollTween = null
},
overwrite: true
});
}
sections.forEach((section, i) => {
ScrollTrigger.create({
trigger: section,
start: "top bottom-=1",
end: "bottom top+=1",
onToggle: self => self.isActive && !scrollTween && goToSection(i)
});
});
the problems are for the animations that are different for each slide and the elements (inside svg) if you see here https://punctum.studio/preview/sitaricerca/ are positioned with transform or matrix and y or x doesn't work well.