animation-delay
animation-delay
animation-delayサンプル
例1
5s後にboxのbeforが上へスライドして説明文を表示
アニメは1回のみ。
もう一回見る場合は再読み込み。
失敗例
animation-fill-modeが無い(defo:normal)失敗例。アニメで指定のスタイルを実行後に適用されない
例2
右:遅延で同じアニメを動かすサンプル。
animation-delay
[animation-delay]でアニメ開始の遅延時間を変更する仕様を使ったアイデアなどを実験してみました。
サンプルの内容【例1 タイトルからの説明文表示演出】
タイトルがスライドして説明が表示されるページ表示時のアニメ演出の例。
※スライドアニメは1回で終了する設定にしたので、animation-fill-modeで特に終了状態を(開始も含めてbothに)指定する必要があります。
失敗例の方は 1回で終了するので、 animation-fill-mode: both; 等を指定しないとこうなるという例になってます。
アニメ終了時(100%)ではbeforeは上にスライド済になり、afterのカウント文字も見えなくなってるはずですが、animation-fill-mode: both (又はforwards) の指定がないので、アニメしてない状態 = cssのアニメ以外の設定状態 → beforeがスライドする前で、afterの文言 4 が上に乗っている状態、になってます。
※成功例と失敗例の「カウント」の仕様については後述してます。
例1のアニメ設定、キーフレーム設定を表示
例1へ
遅延を使ったカウントダウンについて
ここではカウントダウンアニメのオリジナル案(文字の折り返しで作ったもの)を使っています。
前回(前ページ)ではコマ漫画的に画像を使いましたので、人と違うことをやるっぽい 原森IT研 としては、今回はcssのみでカウントダウンするけど、画像ではなく文字列で、さらに不要なdivやspan等を増殖させない、というネタになっています。
このサンプルでは、タグは div 1個のみになっていて、そこには アニメ開始の遅延時間指定 という文字を表示しています。
最初に上に乗っかってる赤いBOXは div:before で作ってます。これが5sの遅延の後に、1sで上にずれる感じになってます。
カウントダウンの数値の方は div:after で作ってます。縦に動くアニメ (topの変化) で表示させたものです。
上下の違いについては、動作テスト用のbothがあるかないかと言う点と、後は上は数値文字「4 3 2 1 0」(全角数字とスペース)、でテストしています。
簡単にアイデアを紹介しておきますと、数字文字列が画像の時と同様に縦に長いBOXになっていて、そこに文字を普通に配置すると、文字が全部表示されてしまうので、文字間にスペースを入れ、ボックスの横幅を短めにして自動的に折り返しをさせて縦長の状態にして配置しています。それを上に移動させている、というものです。
要するに、前ページのカウントダウン画像をテキスト配置で用意しただけ、というものです。
赤色BOXに表示している文字列「animation-delay」カウントダウンしている数値文字「4 3 2 1 0」は以下のようにdivにdatasetで指定しています。
<div id="ani_test_01" data-c="animation-delay" data-t="4 3 2 1 0">アニメ開始の遅延時間指定</div>
「カウントダウンアニメ」などを検索すると javascript や jQuery で、などの他に、CSSだけで、という記事も発見できるかと思います。
ただ、CSSのみで作る場合、div や span や li などが大増殖するような、正しいHTML文法からみるとカッコ悪い感じの仕様になってしまう場合が多いかと思いますので、HTML構文にこだわりのある人は演出などで使う文字等はdataset仕様を使う方法をアイデアの一つとして持っておくとシンプルなソースで実現できる方法を思いつく可能性もあるので、ご参考までに、WEB tips に詳細記事 dataset(カスタムdata属性)をCSSで活用するアイデア3 [カウントダウンテキスト]を掲載しています。
サンプルの内容【例2 遅延を使って同じアニメで広告アニメ】
同じアニメを遅延を使って、キャッチ文の段落divを順に動かしている広告アニメのようなサンプルです。
サンプルなので、文字が読めなくても気にせず、雰囲気重視で動かしてます。
途中、インパクトを出すために1つだけ別のアニメを挟んでいるけれど、アニメの長さが同じなので、遅延させて順に表示させてもずれることはない形で作れます。
※遅延させて順にアニメを表示する、という作り方の場合、全体のアニメ時間を決め、その中で、遅延させるパーツの数に合わせて、キーフレームの数値を調節する必要があります。(そうしないと重なってしまう)
例2のアニメ設定、キーフレーム設定を表示
例2へ
ちなみに、このページのアニメ設定やキーフレームは、原森webの下記のツールで作成してます。
【Animation ソース作成ツール】【keyframes ソース作成ツール】
animationのプロパティ
- animation-name CLICK
- animation-duration CLICK
- animation-timing-function CLICK
- animation-delay CLICK
- アニメ開始の待ち時間を指定。1s 等。
初期値=0(すぐに開始)。負の値の場合、過去にさかのぼって開始されていたアニメのと中からはじまる。 - animation-iteration-count CLICK
- animation-direction CLICK
- animation-fill-mode CLICK
- アニメの実行前や実行後に適用するスタイルを指定。
normal…アニメで指定されたスタイルは、アニメの実行前や実行後には適用されない。
forwards…アニメの最後に適用された状態を維持する。通常は100%やtoのスタイルになる。※animation-directionが alternate、animation-iteration-count が偶数の場合は0%やfromのスタイルとなる。
backwards…0%やfrom キーフレームで定義された値を即座に適用し、animation-delay プロパティで指定した時間の間、その状態を維持する。
both…forwards と backwards の両方の規定に従う。なのでアニメの設定が実行前と実行後の両方に適用される。
- animation-play-state CLICK
ページトップへ