CSS3、animation プロパティでアニメーションを作る

animation プロパティを使用すると transition (CSS3、transitionでアニメーションを使う | memocarilog)よりも細かくアニメーションの動きを指定できるので、複雑なアニメーションの表現ができます。

animation もまた、現時点でIEは全く対応しておらず、その他のブラウザでもベンダープレフィックスが必要です。

tansitionと同じようにアニメーションさせたい要素に、animationの6つのプロパティを指定する事により動きを表現できます。プロパティはまとめて書く事もできます。
tansitionと違うところは、animationプロパティの記述とは別に、@keyframesルールでアニメーションの動きの定義が必要です。

animationの各プロパティの説明とキーフレームの記入の仕方、サンプルデモです。

1. animation-name

アニメーションのキーフレームの名前です。複数ある場合はカンマで区切って指定。

記入例

キーフレームの名前を example-animation とする場合

animation : example-animation

2. animation-duration

アニメーションにかかる時間を指定する。

記入例

1秒かけてアニメーションする

transition-duration : 1s ;

3. animation-timing-function

アニメーションの動きの指定。
ease , linear , ease-in , ease-out , ease-in-out の値を入れる事ができる。

記入例

transition-timing-function: ease ;

動きのデモはこちらの記事”CSS3、transitionでアニメーションを使う | memocarilog”をご参照下さい。

4. animation-delay

何秒後にアニメーションを開始するかを指定。

記入例

transition-delay: 2s ;

5. animation-iteration-count

アニメーションを何回繰り返すかを指定。infinite としてすると無限に繰り返す。

記入例

animation-iteration-count : 2;
↑2回アニメーションを繰り返す

animation-iteration-count: infinite;
↑永遠に繰り返す

6. animation-direction

normal を指定でアニメーションが一方向へ再生される。
alternate を指定するとアニメーションが往復して再生される。

記入例

animation-direction: normal;
animation-direction: alternate;

参照:animation-CSS3リファレンス

キーフレーム @keyframes の書き方

@keyframesにもベンダープレフィックスの記述が必要です。%で変化を指定して行きます。0%を始点として100%が終点になります。
0%〜100%までの間は細かく(1%の間隔でも)動きを指定する事ができます。@keyframesのすぐ後には、animation-nameで記入したアニメーションの名前を記入します。

記入例

@-webkit-keyframes  アニメーションの名前 {
	0% {
		最初の状態を記入
	}
	100%{
		最終的な状態を記入
	}
}

例えば、小さなボックスが25%の間隔で20pxずつ大きくなり、25%の間隔で円形と四角に変わり、色をグレーからピンクへ徐々に色を変化させていくという動きの設定だと以下のようにCSSファイルへ記入します。

@-webkit-keyframes example {
	0% {
		width:20px;
		height:20px;
		background-color:#817787;
	}
	25% {
		width:40px;
		height:40px;
		background-color:#BDAEC5;
		border-radius: 50%;
	}
	50% {
		width:60px;
		height:60px;
		background-color:#D5C5DE;
		border-radius: 0;
	}
	75% {
		width:80px;
		height:80px;
		background-color:#E8D7F1;
		border-radius: 50%;
	}
	100%{
		width:100px;
		height:100px;
		background-color:#F4E2FE;
		border-radius: 0;
	}
}

サンプルデモ

上記のキーフレームで再生したサンプルデモです。

サンプルのHTMLとCSSのコードはデモのタブをクリックして切り替えられます。

animation-direction に alternate を指定してアニメーションを往復させると下のようになります。

Related Article

1 Comments & Tracbacks

Leave a Comment

Emailは公開されません。*は必須項目です。


*


Categorys

Tags

CSS3 ダッシュボード ヘッダー トラブル コードサンプル コンテンツ スライドショー jQueryプラグイン php 引っ越し 素材 お知らせ JavaScript Facebook CSS カテゴリー 投稿タイプ IE HTML5 Shareボタン seo レスポンシブ Photoshop タクソノミー ナビゲーション カスタムメニュー Git Macアプリ サイドバー WPセキュリティ SVG iTunes PHPリファレンス API WP使い方 query_posts データベース get_posts() 条件分岐 コメント function RSS スマートフォン Sass/Compass さくらVPS