【CSS】「animation-play-state」プロパティの使い方!【分かりやすい】
しゅーた(@chibasyuta)です!
この記事ではCSSの「animation-play-state」プロパティの使い方について解説します!丁寧にまとめていくので、興味がある方はぜひご一読ください。
「animation-play-state」を使うと、「アニメーションを実行したり停止させたり」の指定ができます。
この記事の内容!
- 「animation-play-state」プロパティを使うと何ができるのか?
- 「animation-play-state」プロパティの使い方!
それでは内容へ入ります!
「animation-play-state」プロパティは「@keyframes」と一緒に使われる。
なのでもし「@keyframes」の使い方がいまいち分からないという方は下記の記事で詳しくまとめているので、こちらも一緒に読んでみてください!
【CSS】「@keyframes」を使ってアニメーションをつける基本的な方法!【分かりやすい】
「animation-play-state」を使うと何ができるのか?
<div class="box"></div>
.box {
width: 100px;
height: 100px;
background-color: skyblue;
animation-name: width;
animation-duration: 2s;
animation-iteration-count: infinite;
animation-play-state: paused;
}
.box:hover {
animation-play-state: running;
}
@keyframes width {
0% {
width: 100px;
}
100% {
width: 1000px;
}
}
「animation-play-state」を使うと、「アニメーションを実行したり停止させたり」の指定ができます。
一旦アニメーションを停止させたとしても、また実行中に切り替えたら途中からアニメーションを再開することもできます。
「animation-play-state」の使い方!
アニメーションを設定する要素自体に「animation-play-state」の指定をする!
.box {
width: 100px;
height: 100px;
background-color: skyblue;
animation-name: width;
animation-duration: 2s;
animation-iteration-count: infinite;
animation-play-state: paused;
}
.box:hover {
animation-play-state: running;
}
@keyframes width {
0% {
width: 100px;
}
100% {
width: 1000px;
}
}
「animation-play-state」の指定は、アニメーションをつける要素に対して行えばOKです!
上の例だと、「@keyframes」を使って「width」というアニメーションを定義して、そのアニメーションを「.box」というクラスがついた要素に「animation-name」プロパティを使って設定しています。
そしてその「.box」というクラスがついた要素に「animation-play-state」プロパティの設定をしている感じです。具体的には「:hover」を使って「実行中と停止中の切り替え」を行っていますね。
「:hover」などを使って切り替える
.box {
animation-name: width;
animation-duration: 2s;
animation-iteration-count: infinite;
animation-play-state: paused;
}
.box:hover {
animation-play-state: running;
}
@keyframes width {
0% {
width: 100px;
}
100% {
width: 1000px;
}
}
上のコードのように「:hover」などを使って、「running」と「paused」を切り替える感じで使ったりしますね。
他には「JavaScript」を使って切り替えたりしてもOKです。
「animation-play-state」に設定できる値は?
「animation-play-state」に設定できる値は下記の通りです。
- running (初期値)
- paused
これらがありますね。
初期値は「running」です。
「paused」を使うと?
「animation-play-state」に「running」を使うと、アニメーションは実行中になります。
アニメーションを進めることができます。
「running」を使うと?
「animation-play-state」に「paused」を使うと、アニメーションは停止中になります。
アニメーションを一旦止めることができます。
「カンマ区切り」で「複数の値」も書くことができる!
.box {
animation-name: width, rotate;
animation-play-state: paused, running;
}
.box:hover {
animation-play-state: running, paused;
}
このように「animation-play-state」には「カンマ区切り」で「複数の値」を書くことができます。
その場合は、「animation-name」に書かれた順番に対応する形で「animation-play-state」の値がそれぞれのアニメーションに対して別々に指定される感じになります。
この辺の挙動は下記の記事で詳しくまとめているので、もし気になる方は下記の記事を読んでみてください!
【CSS】「animation-name」プロパティの使い方!【分かりやすい】
参考リンク!
仕様書。
https://drafts.csswg.org/css-animations/#animation-play-state
MDN。
https://developer.mozilla.org/ja/docs/Web/CSS/animation-play-state
おすすめの再生リスト!
こちらは僕が制作したYouTubeの再生リスト「CSSのアニメーション編」です。
「CSSのアニメーション編」はCSSを使ったアニメーションの知識が網羅的に学習できるコンテンツとなります。
こちらの再生リストでCSSアニメーションについて丁寧に解説しているので、もし気になる方はチェックしてみてください!一緒に楽しく学習しましょう!!
まとめ!
「animation-play-state」を使うと、「アニメーションを実行したり停止させたり」の指定ができる。
アニメーションを設定する要素自体に「animation-play-state」の指定をする!
「:hover」などを使って切り替えて使う。
「animation-play-state」に設定できる値は下記の通り。
- running (初期値)
- paused
「animation-play-state」に「running」を使うと、アニメーションは実行中になる。
「animation-play-state」に「paused」を使うと、アニメーションは停止中になる。
「カンマ区切り」で「複数の値」も書くことができる!
この記事が気に入った方は僕のTwitter(@chibasyuta)のチェックもお願いします!
それではこんな感じでこの記事を終わります!
ではまた!