Anime.js v4

juliangarnier/anime · JavaScript animation engine

1 — 概要

Anime.js は、CSS プロパティ・SVG・DOM 属性・JavaScript オブジェクトを対象にする、軽量で多用途の JavaScript アニメーションライブラリ。v4 では ESM を前提にモジュール分割され、animate・timeline・draggable・スクロール連動・レイアウトなどをサブパス import で取り込める。

4.4.1 package.json 版
MIT ライセンス
ESM sideEffects: false
WAAPI ブラウザ API 連携
CSS transforms SVG draw / morph split text spring easing scroll events auto layout
公式ドキュメント: 利用 API の詳細は animejs.com/documentation を参照。v3 からの移行は Migrating from v3 to v4。
パス役割
src/ライブラリ本体(animation, timeline, engine, easings, svg, text, waapi など)
dist/modules/ビルド済み ESM / CJS と型定義(npm 公開物)
dist/bundles/UMD / ESM バンドル(jsDelivr・unpkg 向け)
examples/デモ HTML(stagger, draggable, auto-layout, onscroll 等)
tests/ブラウザ・Node テストスイート
2 — 実行の流れ

アプリは animate() や createTimeline() などの公開 API を呼び、内部では engine がフレームループを回し、core がターゲット解決・値補間・レンダリングを担当する。

flowchart TD
  App[ページ / DOM / SVG]
  API["公開 API
animate · timeline · draggable"] Eng[engine + timer] Core["core
targets · values · render"] Out[スタイル / 属性 / WAAPI] App --> API API --> Eng Eng --> Core Core --> Out Out --> App
ターゲット解決 → イージング・キーフレーム → 加算合成 → フレーム描画
3 — モジュールと export

ルート animejs からタイマー・アニメーション・タイムライン・ドラッグ・スクロール・エンジン・イージング・レイアウト・SVG・テキスト・WAAPI などを再 export。名前空間付きは easings / utils / svg / text。

animation / timeline

単発トゥイーンとシーケンス。stagger・キーフレーム・ループ・alternate を統合 API で指定。

draggable / scroll

ポインタ操作とスクロール連動。examples に carousel・sticky・responsive scope など。

layout

DOM レイアウトの自動アニメーション(accordion, periodic-table, todo-list 等のデモあり)。

svg / text / waapi

パス描画・モーフ、テキスト split / scramble、Web Animations API ブリッジ。

import パス用途
animejsメインバンドル(推奨エントリ)
animejs/timerタイマー単体
animejs/timelineタイムライン
animejs/draggableドラッグ可能要素
animejs/easings/springスプリングイージング
animejs/layoutレイアウトアニメーション
animejs/svgSVG ユーティリティ
animejs/textテキスト分割・スクランブル
animejs/waapiWAAPI 連携
ツリーシェイキング: sideEffects: false のため、未使用サブモジュールはバンドラが除去しやすい。必要なサブパスのみ import する運用が可能。
4 — 使い方
npm install animejs

CDN では package.json の jsdelivr / unpkg フィールドが指す dist/bundles/anime.umd.min.js を利用できる。

import { animate, stagger } from 'animejs';

animate('.square', {
  x: 320,
  rotate: { from: -180 },
  duration: 1250,
  delay: stagger(65, { from: 'center' }),
  ease: 'inOutQuint',
  loop: true,
  alternate: true
});

セレクタ文字列・DOM ノード・オブジェクトリテラルなど、ターゲット表現は v4 API で統一される。イージング名・関数ベース値・キーフレームオブジェクトも同じオプションオブジェクトに載せる。

5 — 開発・ビルド

開発時は npm i のあと npm run <script>。Rollup で dist/ を生成し、tsc -p tsconfig.types.json で型を出力する。

script内容
devsrc/**/*.js を監視し ESM を dist/modules へ、型を生成
dev:testdev とブラウザテストを並行
builddist を再生成(ESM / UMD / CJS / IIFE + 型)
test:browserローカルサーバでブラウザテスト(tests/index.html)
test:nodeNode 向けテスト(tests/suites/node.test.js)
open:examplesexamples/ をディレクトリ一覧で閲覧