gsap-performance
GSAP の動きがカクつくときに、動かす属性の選び方・読み書きの順番・動きの数の減らし方を直させる。transform と opacity を優先し、quickTo と stagger を使う。GSAP 公式が出している手引き
npx skills add greensock/gsap-skills/gsap-performance入れる前にこのスキルがすること・注意点・SKILL.md の原文を確かめてください。解析は安全性の判定ではありません。
- インストール
- 73,470
- 実用度
- 24
- GitHub star
- 18,004
- 最終更新
- 2026/7/30
頼み方の例
そのままコピーして使えますgsap-performanceスキルを使って、このページの GSAP の動きでカクつきそうな箇所を洗い出してください。width や top を動かしているところ、毎回新しいトゥイーンを作っているところ、画面の外でも動き続けているところを一覧にし、直し方を示してください。コードはまだ書き換えないでください。
対象のファイルや状況は、ご自身の作業に合わせて置き換えてください。
このスキルがすること
SKILL.md の記述から機械的に抽出- 外部通信・シェル実行・ファイル操作の記述は見つかりませんでした
これは安全性の判定ではありません。 SKILL.md にそう書かれているという事実だけを並べています。実際に問題があるかは使い方と文脈で決まるため、当サイトでは断定しません。導入前に SKILL.md の原文を確認してください。
SKILL.md の規模
コードブロックの言語: css、javascript
いつ使うか
GSAP で書いた動きが滑らかに動かないときのスキルです。説明文は「カクつきを減らしたい」「60fps で動かしたい」「動きの性能について聞かれた」ときに呼ぶよう書いています。
GSAP を作っている GreenSock が公開している公式の手引きです。新しく動きを作るときより、作った動きを見直すときに効きます。
- SKILL.md の大きさ(2026-10-23 時点)
- 4,139 バイト
- 同梱ファイル(SKILL.md 1 枚)
- 0 件
- 「やってはいけない」
- 4 項目
見直す観点は 6 つ
本文は次の 6 つの観点に分かれています。
- 動かす属性transform と opacity を優先し、幅や位置の属性は避ける
- will-change実際に動く要素にだけ、CSS で付ける
- 読み書きの順番DOM の読み取りと書き込みを交互にしない
- 要素が多いときstagger を使い、長い一覧は見えている分だけ動かす
- 頻繁に変わる値マウスに付いてくる動きは
gsap.quickTo()で - 同時に動く量画面の外や使っていない動きは止めるか消す
transform と opacity を優先する
動かすなら x・y・scale・rotation・opacity を選べ、というのが最初の規則です。これらは合成の段階で処理され、レイアウトの計算と、描き直しの大半を避けられる、と説明されています。
width・height・top・left・margin・padding は、動かすたびにレイアウトの計算が走ります。GSAP の x と y は既定で transform(translate)を使うので、位置を動かすなら left と top の代わりにこちらを使います。
読み取りと書き込みを交互にしない
GSAP 自身は更新を内部でまとめています。問題になるのは、GSAP と一緒に自分で DOM の大きさを読んだり書き換えたりする処理を混ぜたときです。
読みと書きが交互に並ぶと、そのたびにレイアウトの計算がやり直されます。先に全部読み、あとでまとめて書く(書くのは GSAP に任せる)よう勧めています。
マウスに付いてくる動きは quickTo
マウスの位置に合わせて要素を動かすような、値が頻繁に変わる動きには gsap.quickTo() を使います。動くたびに新しいトゥイーンを作らず、1 つのトゥイーンを使い回すためです。本文には、x と y の 2 つを quickTo() で作り、mousemove で値を渡す例があります。
ScrollTrigger の負荷
スクロール連動の動きについても 3 つの注意があります。
| 項目 | 本文の勧め |
|---|---|
pin: true | 固定した要素は別の層に上がる。固定するのは必要なものだけ |
scrub | scrub: 1 のような小さい値でスクロール中の処理を減らせることがある。性能の低い端末で試す |
ScrollTrigger.refresh() | レイアウトが実際に変わったとき(中身を読み込んだあとなど)だけ呼ぶ。画面の大きさが変わるたびには呼ばない。できれば間引く |
使わないほうがいいとき
GSAP を使っていない
規則の大半は GSAP の書き方(quickTo()・stagger・x と y・ScrollTrigger)に結び付いています。CSS のアニメーションや別のライブラリで書いているなら、そのまま当てはまらない部分が多くなります。
ページ全体の読み込みが遅い
このスキルが扱うのは、動いている最中の滑らかさだけです。画像の大きさ、読み込みの順番、Core Web Vitals のようなページ全体の速さは扱いません。そちらは web-perf の担当です。
動きそのものを作り直したい
どの動きを残し、どれを減らすかを決めたいなら、improve-animations のほうが洗い出しから入れます。基本の書き方から作るなら gsap-core と gsap-timeline を、本文も案内しています。
注意点
SKILL.md 1 枚で、書き方を渡すだけ
SKILL.md の解析では、外部通信・シェル実行・ファイル操作の記述は見つかっていません。同梱ファイルは無く、SKILL.md 1 枚(4,139 バイト、2026-10-23 時点)で完結しています。
測り方は書かれていない
規則を全部当てても、遅さの原因が別のところにあれば変わりません。「性能の低い端末で試す」とは 2 か所で書かれていますが、どう試すかは任されています。
will-change を全部に付けない
will-change と force3D を「念のため」すべての要素に付けるのは、「やってはいけない」に入っています。付けるのは実際に動く要素だけで、CSS で付けるよう書かれています。
片付けを忘れると性能も壊れる
「やってはいけない」の最後は片付けです。残ったトゥイーンや ScrollTrigger は動き続け、性能と正しさの両方を損なう、と書かれています。画面を切り替える作りなら、離れたときに止めるか消すかを決めておきます。
動きを減らす設定には触れていない
動きを減らす設定(prefers-reduced-motion)には触れていません。動きの量を減らす話はありますが、性能のためで、利用者の設定に合わせる話ではありません。設定ごとの切り替えは gsap-core の gsap.matchMedia() の節にあります。
インストール数の推移
日次で記録9月18日 〜 11月7日(49日分)
インストール数と 1 日あたりの増加は Skillselion が に集計した値です。上流の更新は数日おきなので、前日比ではありません。GitHub star と最終更新は に GitHub から取得しました。
併用すると強いスキル
web-perf
サイトの表示の遅さを実測で調べさせる。Chrome DevTools で計測し、効果が 0 ミリ秒の改善は勧めさせない
improve-animations
アプリ全体の動きのコードを点検させ、直す順番の一覧と、別のエージェントがそのまま実行できる計画書を書かせる。自分ではコードを直さない。安いモデルに実装を任せる前提の分業
gsap-core
GSAP の基本(to・from・fromTo、緩急、時間差、既定値)で、正しい動きのコードを書かせる。動きを減らす設定と画面幅での切り替えは matchMedia で。GSAP 公式が出している手引き
gsap-scrolltrigger
GSAP の ScrollTrigger でスクロールに連動する動きを書かせる。固定表示、スクロールへの追従、横スクロールの見せかけまで。公式が出している手引き
よくある質問
要素を動かすと、まわりの要素までガタつきます
width・height・top・left などを動かしていると、動くたびにまわりのレイアウトも計算し直されます。同じ見た目を x・y・scale で作れないか、まず確かめてください。本文の規則は、位置を動かすなら left と top ではなく x と y を使え、です。
一覧の項目を 1 つずつ時間差で出しています。重くなりませんか
同じ動きなら、delay をずらした別々のトゥイーンを並べるより stagger を使うほうが効率的だ、と本文にあります。項目が多い一覧なら、見えている項目だけを動かすか、一覧そのものを仮想化することも勧めています。数百の動きを同時に作るのは避けるよう書かれています。
画面の大きさが変わるたびに ScrollTrigger.refresh() を呼んでいます
本文は、レイアウトが実際に変わったときだけ呼ぶよう勧めています。画面の大きさが変わるたびに呼ぶのは避け、できれば間引きます。画像や中身をあとから読み込んだあとが、呼ぶべき場面です。
どれくらい速くなるかの目安はありますか
本文に数値の目安はありません。説明文に「60fps」とあるだけで、規則ごとにどれだけ効くかは書かれていません。直す前と後を、手元の端末と性能の低い端末の両方で比べるのが確実です。