初めまして
今回担当させて頂く”遠藤”です。
よろしくお願いします!
私は"株式会社ブレーンネット"の社員として、主にJavaでのWebサイト構築案件に多く携わってきました。
第二回目、第五回目担当の"板敷"さん、第三回目担当の"手塚"さんとも、いくつかの案件をご一緒させて頂いております。
その中で、「これからは、システムもCSSくらい出来なきゃやっていけないよ!」と活を入れられたこともあり、今までデザイナー任せだったCSSを勉強してみることにしました。
今回は、CSS3にて追加された新機能の 2D/3D変形や簡易アニメーションを利用してみたいと思います。
まずは、CSSトランスフォームを使って、回転や拡大縮小等の変形を行ってみたいと思います。
CSSトランスフォームは要素を変形させるスタイルです。
変形の種類は2D(平面)と3D(立体)に大きく分けられます。
CSS3では、CSSだけで要素をアニメーションさせることができます。
CSSによるアニメーションは、transitionプロパティを使うCSSトランジションと、animationプロパティを使うCSSアニメーションの2種類が用意されています。
では、上記の機能を用いて、計算ゲームの結果表示部分を作成したいと思います。
スタイル定義
(2)3秒かけて再生します。
(3)開始と完了を滑らかにする指定をしています。
(4)1回再生したら終了します。
くるくる回るアニメーション
rotateY関数にて、Y軸を起点に回転させています。
scale関数にて拡大縮小させています。
フェードインするアニメーション
今回作成したアニメーションは、あくまで一例にすぎませんので、いろいろな組み合わせでお気に入りのアニメーションを作成してみてはいかがでしょうか。
次回は「計算機能 & その他機能」です。計算ゲームも完成の回となりますので、ご期待ください。
担当の”板敷”さんエッジの効いた解説よろしくおねがいします!


今回担当させて頂く”遠藤”です。
よろしくお願いします!
私は"株式会社ブレーンネット"の社員として、主にJavaでのWebサイト構築案件に多く携わってきました。
第二回目、第五回目担当の"板敷"さん、第三回目担当の"手塚"さんとも、いくつかの案件をご一緒させて頂いております。
その中で、「これからは、システムもCSSくらい出来なきゃやっていけないよ!」と活を入れられたこともあり、今までデザイナー任せだったCSSを勉強してみることにしました。
今回は、CSS3にて追加された新機能の 2D/3D変形や簡易アニメーションを利用してみたいと思います。
CSSトランスフォーム
まずは、CSSトランスフォームを使って、回転や拡大縮小等の変形を行ってみたいと思います。
CSSトランスフォームは要素を変形させるスタイルです。
変形の種類は2D(平面)と3D(立体)に大きく分けられます。
- 2Dトランスフォーム
- rotate関数
- scale関数
- 3Dトランスフォーム
2D変形にはrotate(回転)、scale(拡大縮小)、translate(平行移動)、skew(斜変形)の4種類があります。
現時点ではtransformプロパティに※1ベンダープレフィックスを付ける必要があります。
値の種類 | 意味 |
---|---|
-moz- | Firefox |
-webkit- | Google Chrome、Safari |
-o- | Opera |
-ms- | Internet Explorer |
今回はGoogle Chrome での動作を想定していますので、「-webkit-」を付けることとします。
rotate関数には、回転角度を指定します。
-webkit-transform: rotate(-15deg);

回転角度に"-15"を指定したので、左に15度傾いています。プラスの値を指定すれば右に傾きます。
scale関数には、横と縦の変形率を指定します。1.0が等倍、2.0で2倍、0.5で半分のサイズとなります。
-webkit-transform: scale(0.7, 1.7);

横に"0.7"を指定しているので縮んでいます。縦には"1.7"を指定しているので伸びています。
3Dトランスフォームは、立体的な変形を行います。
3Dトランスフォームを行うには、先ず変形させたい要素の親のスタイルにtransform-styleプロパティを追加し、「preserve-3d」を指定します。最低限必要なのはこれだけです。
-webkit-transform-style: preserve-3d;
-webkit-transform: rotateX(190deg); ・・・(1)
-webkit-transform: rotateY(190deg); ・・・(2)
-webkit-transform: rotateZ(190deg); ・・・(3)

(1)X軸を中心に190度回転するので、上下逆さまになったように見えます。
(2)Y軸を中心に190度回転するので、左右が逆になったように見えます。
(3)Z軸を中心に190度回転するので、上下左右が逆になったように見えます。
CSSでアニメーションする
CSS3では、CSSだけで要素をアニメーションさせることができます。
CSSによるアニメーションは、transitionプロパティを使うCSSトランジションと、animationプロパティを使うCSSアニメーションの2種類が用意されています。
- CSSアニメーション
CSSトランジションは再生時間とタイミング程度しか設定できないのに対し、CSSアニメーションは細かい制御が可能です。
CSSアニメーションでは、「いつ何をどう変化させるか」という情報(キーフレーム)をまとめた、進行表のようなものを作ります。
アニメーション開始時点を0%、終了時を100%とし、途中段階でのCSSプロパティの変化を記述します。
@-webkit-keyframes fade {
0% {opacity: 0;}
25% {opacity: 0.3;}
50% {opacity: 0.5;}
70% {opacity: 0.7;}
100% {opacity: 1.0;}
}
後は、アニメーションさせたい要素のスタイルにanimationプロパティを追加し、利用するアニメーション名、再生時間などを設定します。
-webkit-animation-name: fade;
-webkit-animation-duration: 4s;
-webkit-animation-timing-function: linear;
-webkit-animation-iteration-count: infinite;

4秒かけて画像が少しずつ表示されていきます。
値の種類 | 意味 |
---|---|
animation-name | 使用するアニメーション名 |
animation-duration | 再生時間を秒数で指定 |
animation-timing-function | アニメーションのタイミングを調整する |
animation-delay | アニメーションの開始時間を遅らせる |
animation-iteration-count | 繰り返しの回数。infiniteを指定すると、無限に繰り返し再生される |
animation-direction | alternateを指定すると、順方向と逆方向のアニメーションが交互に繰り返される |
計算ゲーム
では、上記の機能を用いて、計算ゲームの結果表示部分を作成したいと思います。
スタイル定義
#msgArea {(1)回転とフェードインするアクションを定義しています。
position: absolute;
-webkit-transform-style: preserve-3d;
-webkit-animation-name: rotate, fade; ・・・(1)
-webkit-animation-duration: 3s; ・・・(2)
-webkit-animation-timing-function: ease; ・・・(3)
-webkit-animation-iteration-count: 1; ・・・(4)
}
(2)3秒かけて再生します。
(3)開始と完了を滑らかにする指定をしています。
(4)1回再生したら終了します。
くるくる回るアニメーション
@-webkit-keyframes rotate {rotate関数にて、2Dの回転を定義しています。
0% {-webkit-transform: rotate(0deg) rotateY(0) scale(1.0)}
50% {-webkit-transform: rotate(720deg) rotateY(0) scale(2.0)}
100% {-webkit-transform: rotate(720deg) rotateY(720deg) scale(1.0)}
}
rotateY関数にて、Y軸を起点に回転させています。
scale関数にて拡大縮小させています。
フェードインするアニメーション
@-webkit-keyframes fade {opacity関数にて、徐々に表示されるように指定しています。
0% {opacity: 0.0;}
25% {opacity: 0.2;}
50% {opacity: 0.5;}
75% {opacity: 0.7;}
100% {opacity: 1.0;}
}
今回作成したアニメーションは、あくまで一例にすぎませんので、いろいろな組み合わせでお気に入りのアニメーションを作成してみてはいかがでしょうか。
次回
次回は「計算機能 & その他機能」です。計算ゲームも完成の回となりますので、ご期待ください。
担当の”板敷”さんエッジの効いた解説よろしくおねがいします!

