Hi, thank you for answering.
As for the codepen example, the blue circle is supposed to become smaller in size with the red circle. The problem is half resolved, by adding a position mark ("<") to all the tweens after the first tween it forces all the elements to tween at once per scrollTrigger...
But as you mentioned, the unsolved issue is that now I don't have the option to start the tweens at different positions or else it will start collapsing like above.
I don't think scrub could be an option for me as I cannot let the users see the in between states of the value based elements. My plan is to have text scrolling on the left (the A,B,C in the demo) scroll triggering the elements in a pinned SVG container. I hope I've explained myself better. So would an alternative from using callbacks you say is a scenario where I create separate timeline of tweens triggered by each text container..? So something like below..?
const TL_1 = gsap.timelines({
scrollTrigger: {
trigger: "div1"
}
});
const TL_2 = gsap.timelines({
scrollTrigger: {
trigger: "div2"
}
});
TL_1.to().to().to()
TL_2.to().to().to()
Not quite sure how to tackle the structuring as you say while trying to avoid conflicts. I would really appreciate if you could give me some guidelines.