ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
animation-timing-function プロパティとは
animation-timing-function は CSS アニメーションの進行ペース (どの瞬間に速くなり、どの瞬間に遅くなるか) を指定するプロパティです。同じ持続時間でもイージング次第で体感の印象が大きく変わるため、UX 設計上きわめて重要。
定義済みキーワード
| 値 | 挙動 | cubic-bezier 相当 |
|---|---|---|
ease (初期値) | ゆっくり始まり中盤速く、最後ゆっくり | (0.25, 0.1, 0.25, 1) |
linear | 一定速度 | (0, 0, 1, 1) |
ease-in | 始めゆっくり、徐々に加速 | (0.42, 0, 1, 1) |
ease-out | 始め速く、終わりゆっくり | (0, 0, 0.58, 1) |
ease-in-out | 両端ゆっくり、中央速い | (0.42, 0, 0.58, 1) |
step-start | 開始時にいきなり 100% へジャンプ | steps(1, jump-start) |
step-end | 終了時にジャンプ | steps(1, jump-end) |
基本構文
.box {
animation-name: slide;
animation-duration: 1s;
animation-timing-function: ease-in-out;
}
@keyframes slide {
from { transform: translateX(0); }
to { transform: translateX(300px); }
}
/* ショートハンド */
.box2 {
animation: slide 1s ease-in-out;
}
イージングの選び方
| 場面 | 推奨 | 理由 |
|---|---|---|
| UI の登場 | ease-out | 素早く現れ、ゆっくり止まる — 物体らしい動き |
| UI の退場 | ease-in | ゆっくり始まり加速して去る — 視線を残さない |
| ループ系 | linear | ローディングスピナーは等速が自然 |
| 強調モーション | cubic-bezier でオーバーシュート | 跳ねる感じで注目度UP |
| 状態遷移 | ease-in-out | 両端をなじませる |
cubic-bezier() — 自由なイージング
4 つの制御点 (x1, y1, x2, y2) でベジエ曲線を定義します。x は 0-1、y は範囲を超えて指定可能 (-で行き過ぎ表現)。
/* オーバーシュート (跳ねる) */
.bounce {
animation: pop 0.6s cubic-bezier(0.68, -0.55, 0.27, 1.55);
}
/* シャープな立ち上がり */
.sharp {
animation: move 0.4s cubic-bezier(0.4, 0, 0.2, 1);
/* Material Design 推奨イージングの一例 */
}
@keyframes pop {
from { transform: scale(0.6); opacity: 0; }
to { transform: scale(1); opacity: 1; }
}
ツール: cubic-bezier.com や Chrome DevTools のイージングエディタで視覚的に調整できる。
steps() — コマ送りアニメーション
滑らかな補間ではなく離散的な区間でジャンプします。スプライトアニメーション (1 枚絵から切り替える) に最適。
.sprite {
width: 64px;
height: 64px;
background: url('sprite.png'); /* 横並びで 8 コマ */
animation: walk 0.8s steps(8) infinite;
}
@keyframes walk {
from { background-position-x: 0; }
to { background-position-x: -512px; } /* 64 * 8 */
}
/* タイプライター風テキスト */
.typing {
overflow: hidden;
white-space: nowrap;
width: 0;
animation: type 3s steps(40, end) forwards;
}
@keyframes type {
to { width: 100%; }
}
| steps の値 | 意味 |
|---|---|
steps(n) | n ステップ。デフォルトは jump-end |
steps(n, start) / jump-start | 各ステップの開始時にジャンプ |
steps(n, end) / jump-end | 各ステップの終了時にジャンプ |
steps(n, jump-none) | 0% と 100% に位置を出さない |
steps(n, jump-both) | 両端に追加位置 |
キーフレームごとに timing-function を切り替え
各 @keyframes ブロック内に animation-timing-function を書くと、そのキーフレームから次のキーフレームまでのイージングを個別指定できます。
@keyframes bounceBall {
0% {
transform: translateY(0);
animation-timing-function: ease-in; /* 落下は加速 */
}
50% {
transform: translateY(300px);
animation-timing-function: ease-out; /* 跳ね返りは減速 */
}
100% {
transform: translateY(0);
}
}
transition-timing-function との関係
transition-timing-function も値と挙動はほぼ同じ。違いは適用対象のみ。
| プロパティ | 対象 |
|---|---|
animation-timing-function | @keyframes ベースのアニメーション |
transition-timing-function | プロパティ値変化のトランジション |
FAQ
Q: linear と ease の違いがピンと来ない
A: linear は等速でメカニカル。ease は動き出しと止まりを柔らかくするので人間的・自然。UI 装飾はだいたい ease 系で OK。
Q: 値 1 を超えるイージング (cubic-bezier(.., .., .., 1.5)) は何が起こる?
A: アニメーション値が目標を超過し戻ってくる 「オーバーシュート」 表現になる。ボタンの強調などに使える。
Q: prefers-reduced-motion への配慮は?
A: モーション酔いに弱いユーザー向けに @media (prefers-reduced-motion: reduce) でアニメーションを抑制するのがベストプラクティス。
関連プロパティ
animation-name/animation-duration/animation-delayanimation-iteration-count/animation-directionanimation-fill-mode/animation-play-statetransition-timing-function— トランジション用
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?