GSAPのScrollTrigger
では以下のコードを実行しています。
ScrollTrigger.create({ trigger: section, start: "bottom bottom", onEnter: () => { gsap.set(inner, { position: "fixed", bottom: 0, }); }, onLeaveBack: () => { gsap.set(inner, { position: "absolute", bottom: "auto", }); }, });
section
要素をトリガーにし、トリガーの底部がビューポートの底部に到達した時点でアニメーションが発動します。
onEnter
でスクロールトリガーが発動した時の処理を定義しています。inner要素のpositionを固定し、bottomを0に設定しています(つまりinnerは親要素に関係なく画面いっぱいで固定されます)。
onLeaveBack
でスクロール方向が負(上方向)で、スクロールトリガーの発動条件を満たさなくなった場合の処理を定義しています。inner要素のpositionの固定を解除し、bottomをautoに設定しています(つまりinnerは親要素の範囲に収まります)。