〽️値。 〽️実例サンプル。 〽️少しだけJavaScript。 〽️次の段階へ。
⬆︎CSSアニメーションについてのまとめページはこちら。
こんにちは、「ふ」です。
これまでCSSアニメーションのプロパティについて紹介してきましたが、いよいよ最後の1つ。animation-play-stateについてお伝えします。
animation-play-stateはCSSアニメーションの再生/一時停止を指定するもので、動画playerのpauseボタンのような働きをします。
これまで紹介してきた他のプロパティとは違い、animation-play-stateは何らかのきっかけとのセット〜例えば、
・ボタンを押す + 一時停止
・スクロール + アニメーション再開
のように実装することで、はじめて効果を発揮するものです。
記事内では、サンプルをいくつか紹介していきます。
animation-play-stateの値は2つのみです。
animation-play-state:「「1running」」;
「running」は初期値で、アニメーションを再生中の状態にします。
animation-play-state:「「1paused」」;
「paused」はアニメーションを一時停止の状態にします。
あくまで「一時停止」なので、再び「running」にしたときはCSSアニメーションはその停止している状態から再開されます。最初の状態に巻き戻ったりはしません。
animation-play-stateを使ったサンプルを紹介します。
記事のはじめにもお伝えしましたが、CSSアニメーションのplay/pauseを実装するからには何らかの外部アクション(切り替えのきっかけ)もセットでないと意味をなしません。
■ HTML
<div class = "sikaku"></div>
■ CSS
.sikaku { width:4em; height:4em; background-color:blue; animation:sikaku 2.8s linear alternate infinite; } @keyframes sikaku { bbfrom { margin-left:10%; } bbto { margin-left:80%; } }
div要素が繰り返し左右に移動するCSSアニメーションです。
hoverした(←これがきっかけ)ときに一時停止するCSSを加えてみます。
.sikaku:hover { animation-play-state:paused; }
結果がこちら⬆︎。
PCの方はdiv要素にマウスカーソルを乗せるとCSSアニメーションが一時停止、離れると再開されます。
スマートフォンなどのタッチデバイスの方はクリックで一時停止、画面内の別の場所をクリックすると再開されます。
こんどは逆にhoverでアニメーションが開始されるものをつくってみましょう。
■ HTML
<div class = "kadomaru"></div>
■ CSS
.kadomaru { width:20%; height:4em; background-color:crimson; border-radius:1em; margin:0 auto; animation:kadomaru 2s infinite alternate 「「1paused」」; } @keyframes kadomaru { bbto { width:80%; } }
<div>要素にはCSSアニメーションを仕込んでいますが、animation-play-stateを「paused」にしているため、現在は動きません。
hover指定のコードを追加します。
.kadomaru:hover { animation-play-state:「「1running」」; }
hover時にwidthが変化するアニメーションが実行されます。
当コーナーでは基本、「HTMLとCSSだけでのコーディング」を前提にしていますが、ここで少しだけJavaScriptを使ったサンプルを紹介します。
JavaScriptではHTMLやCSSに働きかけるイベント処理(きっかけ)を自由にプログラムすることができ、
今回のanimation-play-stateと組み合わせることで、表現の幅が格段に広がります。
ボタンイベントを作ってみましょう。
■ HTML
<div id = "maru"></div> <button 「「1onclick = "pause()」」"> 一時停止/再開 </button>
■ CSS
#maru { width:4em; height:4em; border-radius:50%; background-color:green; animation:maru 2s infinite linear alternate; } @keyframes maru { bbto { margin-left:80%; }
HTMLの<button>タグには、onclick属性としてpause関数を発動させることとしています。
現在はこの⬆︎ような状態。ボタンを押しても何もおきません。
ここにJavaScriptで関数pauseを定義します。
■ JavaScript
<script> let num = 1; const maru = document.getElementById("maru"); function pause() { bbif(num == 1) { bbmaru.style.animationPlayState = "paused"; bbnum = 0; bb} else { bbmaru.style.animationPlayState = "running"; bbnum = 1; bb} } </script>
ボタンを押すとCSSアニメーションの一時停止/再開が切り替わります。
当コーナーの方針からは少しばかり脱線して、JavaScriptを使ってしまいました。しかし「使いどころ」を考えたときに、今回のanimation-play-stateはCSS+JavaScriptの併用を想定したプロパティだと思われます。
興味のある方は研究してみてください。
最後までお読みくださり、ありがとうございます。
今回紹介した、CSSアニメーションのanimation-play-state。プロパティ自体は「一時停止/再開」を切り替えるだけの単純なものですが、いろいろな「きっかけ」と組み合わせることで楽しいものが作れそうな予感がしますね、フフフ。
扨(さて)、今回でCSSアニメーションのプロパティは一通り学び終えました。次の段階へと進んでいきます・・とその前に、これまでの復習もかねて「中間テスト」でも企画しようかな?と考えたりもしています。
引き続き楽しく学習していきましょう!ではまた〜 ♪♪
swift、web、ガジェットなど。役立つ情報や観ていてたのしいページを書いていきたいと思います。