デモを読み込み中...
スコアカード
| ライブラリ | 実装行数 | 使用API | 主観メモ |
|---|---|---|---|
| Anime.js | 6行 | animate / spring | ease差し替えだけでばねになる手軽さ |
| Motion | 6行 | animate / type:spring | 中断・連打時の速度継承が自然で気持ちいい |
コード比較
import { animate, spring } from "animejs";
// ばねはイージングとして表現する。
// durationはばね物理(stiffness/damping/mass)から自動決定される
animate(card, {
x: 150,
y: 16,
ease: spring({ stiffness: 200, damping: 12, mass: 1 }),
});import { animate } from "motion";
// ばねはトランジションタイプとして表現する。
// 速度の引き継ぎ(中断時のvelocity)はエンジン側が面倒を見る
animate(
card,
{ x: 150, y: 16 },
{ type: "spring", stiffness: 200, damping: 12, mass: 1 },
);- -パラメータ名はstiffness/damping/massで両者共通。数値の意味もほぼ対応するため、設定値はそのまま移植できる。
- -思想が異なる: Anime.jsは「ばね=イージング関数」(ease指定)、Motionは「ばね=トランジションタイプ」(オプション指定)。
- -移動中にもう一度別の点へ動かすと差が出る。Motionは現在速度を引き継いで滑らかに繋がりやすく、Anime.jsは新しいアニメーションとして開始される。