📚

【GSAP】追従サイドメニューを実装する

2023/11/03に公開

はじめに

GSAPのScrollTriggerのピン留めで追従サイドメニューを実装しました。position:stickyでの実装が難しいデザインの場合、GSAPを使用すれば比較的シンプルに実装できると感じました。

実装サンプル

ポイント

◯ 2カラムのうちサイドメニューが追従するエリアを空けておく

予めサイドメニューの通り道を空けておき、position:absolute;で固定しておきます。

◯ 固定したい要素をスクロールトリガーの「pin: true」で固定

// プラグインの登録
gsap.registerPlugin(ScrollTrigger);

ScrollTrigger.create({
  pin: true, //トリガー要素を固定する
  trigger: "#js-sidemenu",
  startTrigger:"#sidemenu-sticky-start",
  start:"top-=50px top",
  endTrigger:"#sidemenu-sticky-end",
  end:"bottom-=175px top",
 // サイドメニューの高さ125px+start位置の50px=175px
  markers: "true",
});

ポイントは、endTriggerで解除したい要素を指定します。
サンプルでは、コンテンツエリアとサイドメニューの底辺が合う位置でスクロールを解除したかったため、

  • endTriggerをコンテンツエリア
  • endをサイドメニューの高さ+スタートをずらした分の値

に指定しました。

  endTrigger:"#sidemenu-sticky-end",
  end:"bottom-=175px top",
 // サイドメニューの高さ125px+start位置の50px=175px
});

Discussion