Skip to main content

Module animation

Module animation 

Source

Structs§

ActiveAnimation 🔒
1要素のアニメーション(@keyframes)進行状態。
ActiveTransition 🔒
1要素・1プロパティのトランジション進行状態。
AnimationEngine
アニメーション/トランジションの集中管理。
AnimationSpec
animation ショートハンドの解析結果。
TransitionSpec
transition ショートハンド1項目の解析結果。

Enums§

TimingFunction
イージング関数。CSS の transition-timing-function / animation-timing-function。

Functions§

as_single_wrapped_call 🔒
文字列全体が単一の関数呼び出し(name(...))かどうかを判定し、そうであれば (“name”, “args”) を返す。split_fn と違い、括弧の対応を実際に追跡して 「その関数呼び出しの閉じ括弧が文字列の末尾ちょうどにある」ことまで確認するため、 translateX(10px) rotate(20deg)(空白区切りの複数関数)を誤って単一関数として 誤認しない(split_fn は最初の ( と末尾の ) を機械的に拾うだけなので、この判定には使えない)。
cubic_bezier_solve 🔒
3次ベジェ y(x=t) を解く。x からニュートン法で媒介変数 u を求め y(u) を返す。
fmt_num 🔒
数値を簡潔な文字列にする(整数なら小数点なし)。
interpolate_color 🔒
2色を補間して #RRGGBB or rgba(…) 文字列を返す。内部表現は 0xAARRGGBB。
interpolate_value
2つの CSS 値を進捗 t で補間する。px/数値/%/色/<n>deg/複数値(空白区切り)に対応。 補間できない場合は t<0.5 で from、それ以外で to を返す(discrete)。
is_animatable_property
プロパティ名がアニメーション可能か(transition: all の展開対象判定に使う)。
is_time_token 🔒
transition プロパティ(カンマ区切りの複数項目)をパース。 例: “width 1s ease, background-color 0.5s linear 0.2s”。 トークンが実際に時間値(<number>s / <number>ms)かどうかを判定する。 単に末尾が s かどうかだけを見ると flex-basis/border-radius のように 末尾がたまたま s で終わるプロパティ名まで時間値と誤認してしまう (font: oblique <angle>10deg を size と誤認したのと同根の「緩すぎる トークン分類」バグ)ため、単位を除いた残りが実際に数値としてパースできる ことまで確認する。
libm_floor 🔒
libm_round 🔒
parse_animation
animation ショートハンドの最初の1項目のみをパース(後方互換用)。 複数のカンマ区切りアニメーションをすべて扱いたい場合は parse_animations を使う。
parse_animations
animation ショートハンドをカンマ区切りの全項目についてパースする。 例: “fade 1s, bounce 2s infinite” → 2つの AnimationSpec
parse_one_animation 🔒
animation ショートハンド1項目をパース。 例: “slide 2s ease-in-out 0.5s infinite alternate both”。
parse_time_ms
CSS 時間値 1s / 250ms を ms に変換。
parse_transition
sample_animation
@keyframes アニメーションの現在算出値を、対象プロパティごとに返す。 elapsed_ms: アニメーション開始からの経過。戻り値: プロパティ→現在値のマップ。
sample_transition
トランジションの現在値を計算する。 from/to: プロパティの開始値・終了値。elapsed_ms: 状態変更からの経過時間。 戻り値: (現在の補間値, アニメーションが進行中か)。
split_fn 🔒
fn(args) を (“fn”, “args”) に分割。
split_num_unit 🔒
12.5px → (12.5, “px”)、0.8 → (0.8, “”)。
split_top_commas 🔒
トップレベルのカンマで分割(関数内の , は無視)。