| この記事の要点 |
|
animation-play-state とは
animation-play-state は CSS の animation を、再生中(running)と一時停止(paused)のあいだで切り替えるプロパティです。一時停止するとその瞬間の状態がそのまま保たれ、再開すれば続きから動き出します。マウスホバーで停止させる演出や、ユーザー操作で再生制御する場合に使います。
取れる値
| 値 | 意味 |
|---|---|
running | 再生中(既定値) |
paused | 一時停止(その時点の状態のまま静止) |
基本の書き方
@keyframes spin {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
.icon {
animation: spin 2s linear infinite;
animation-play-state: running; /* 既定 */
}
.icon.is-paused {
animation-play-state: paused; /* 止める */
}
hover で停止する例
マーキーやスクロール装飾など、ホバー中だけ止めたい用途で便利です。
@keyframes scroll {
from { transform: translateX(0); }
to { transform: translateX(-50%); }
}
.marquee {
animation: scroll 15s linear infinite;
}
/* ホバー中は止める */
.marquee:hover {
animation-play-state: paused;
}
animation 短縮記法に含める
animation 短縮記法の最後の値として書けます(順序は: name | duration | timing-function | delay | iteration-count | direction | fill-mode | play-state)。
/* 最初から停止状態で配置 */
.box {
animation: spin 2s linear infinite normal none paused;
}
/* クラス付与で再生開始 */
.box.is-playing {
animation-play-state: running;
}
JS から制御する
const el = document.querySelector('.icon');
// 一時停止
el.style.animationPlayState = 'paused';
// 再開
el.style.animationPlayState = 'running';
// トグル
el.style.animationPlayState =
(el.style.animationPlayState === 'paused') ? 'running' : 'paused';
複数アニメーションの個別制御
animation はカンマ区切りで複数のアニメを同時にかけられます。animation-play-state もカンマ区切りで個別に指定できます。
.box {
animation:
spin 2s linear infinite,
pulse 1s ease infinite;
/* 1 つ目は再生、2 つ目は停止 */
animation-play-state: running, paused;
}
類似プロパティとの違い
| プロパティ | 違い |
|---|---|
animation-play-state: paused | その時点の状態をそのまま保持して止める |
animation-name: none | アニメ自体を消す。要素は元の見た目に戻る |
animation-iteration-count: 0 | そもそも再生されない |
animation: none | すべて初期化 & 停止 |
よくある落とし穴
animation-play-stateは再生位置を保持する。再生位置を 0 に戻すにはanimation-nameを一度外して付け直す(リフロー)- 子要素の
animationは親の play-state を継承しない。子側にも書く必要がある transitionには効かない — これはanimation専用- アクセシビリティ —
prefers-reduced-motionのユーザー設定がある場合、初期からpausedにする配慮を
関連
- アニメーション — 親カテゴリ
- animationプロパティ
- animation-nameプロパティ
- animation-duration プロパティ
- animation-timing-functionプロパティ
- animation-iteration-countプロパティ
- animation-directionプロパティ
- animation-fill-modeプロパティ
子ページ
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- プロジェクトをTomcatプロジェクトとして認識させる方法 2026-10-07 22:32:50
- MySQLの1366 Incorrect string value|Laravelの文字コード・絵文字エラー 2026-10-07 21:54:03
- curlの証明書ホスト名不一致|旧エラー51・現行60の確認と対処 2026-10-07 21:54:03
- LaravelのMassAssignmentException|fillableの原因と安全な対処 2026-10-07 21:54:03
- Eclipse で Tomcat の起動ログがコンソールに出ない時の確認手順 2026-10-07 21:54:02
- MySQLにおける中央値(Median)の導き方(バージョン8未満) 2026-10-07 13:49:45
- getInputForward 2026-10-07 13:41:15
- JSONから配列に変換 2026-10-07 13:41:15
- ビューから値をモデルに格納しコントローラーで受け取る方法 2026-10-07 13:23:41
- Laravelのテーブル作成と定義変更|マイグレーション・up/down・注意点 2026-10-07 13:23:41
- NumPy 配列に要素を追加する方法 (append / concatenate) 2026-10-07 13:23:41
- MariaDB・MySQLで現在日時を取得する方法|NOW・タイムゾーン・保存型 2026-10-07 13:13:36
- 【django】テンプレートで定数を使用する方法 2026-10-07 13:10:15
- Spring BootにおけるApplication.propertiesの環境依存設定の分割方法 2026-10-07 12:09:35
- Not supported for DML operations【Springエラー】 2026-10-07 11:09:38