スキップしてメイン コンテンツに移動

CSS3でアニメーションを作ってみよう(理論編)

こんにちは、クリエイティブフレークです。



Windows XPのサポートが終了してから、国内のIE10のシェア率が急激に高まり、Chromeも急伸しています。

これまでどうしてもIEの古いバージョンのユーザーのことを考慮すると、完全CSS3はまだ先かなと思うところでしたが、そろそろ勉強し始めどきかもしれません。

今回はCSS3だけで動くアニメーションの簡単なサンプルを。

【デモ : DEMO】CSS3だけでアニメーション



そもそも、アニメーションといえば、
・gif(Photoshopなどでタイムラインでコマ送り。あくまで画像なのでパラパラ漫画と同じ理論。)
・Flash(タイムラインもしくはプログラミングで制御。見るにはFlash Playerのインストールが必要。)
・jQuery(JavaScript言語を使用して動的に制御。)

時代ごとに移り変わってきましたね。

では、こんなにアニメーションは存在するのに、なんでCSS3を使いたがるの?

・gifの欠点
gifアニメーションの欠点は細かく動かすとファイル容量が大きくなります。
また、滑らかな動きには向いていません。

・Flashの欠点
FlashはFlash Playerが必要なので、インストールしていないPCや、スマートフォンには対応していません。

・jQueryの欠点
jQueryはプログラミング可能なので、細かく動作を指示できますが、jQueryを使用する場合、JavaScript単体とjQuery本体の組み合わせで、ファイルは大きくなります。



ここで登場するのがCSS3。以前ならマークアップ言語で動作の指示ができるなんて思ってもみませんでした。

今回の目標
・CSSで丸や四角などの図形を描く
・CSSで回転させる
・CSSでフェードさせる



【デモ : DEMO】CSS3だけでアニメーション


▲こんなかんじ

今回のデモのソースコードはすべてHTML内に記述してあります。

ソースコードが長いので、ここでは解説だけを記載します。



サンプルソースコードの解説


div {
  position: absolute !important;
  top: calc(50% - 100px);
  left: calc(50% - 100px);
  width: 200px;
  height: 200px;
  background-color: #e94c3d;
  -webkit-animation: transform 4s .5s infinite cubic-bezier(1,0.15,.29,1.21) alternate;
  -moz-animation: transform 4s .5s infinite cubic-bezier(1,0.15,.29,1.21) alternate;
  -ms-animation: transform 4s .5s infinite cubic-bezier(1,0.15,.29,1.21) alternate;
  -o-animation: transform 4s .5s infinite cubic-bezier(1,0.15,.29,1.21) alternate;
  animation: transform 4s .5s infinite cubic-bezier(1,0.15,.29,1.21) alternate;
}


ここでdivタグで図形を描きます。
width: 200px と height: 200px の部分が、正方形を表します。
背景色(background-color)お好きな色を。

position: absolute !important と top, left は、見やすくするために画面の上下中央に配置しています。

-webkit-animation は、Chromeでの動作指示
-moz-animation は、FireFoxでの動作指示
-ms-animation は、IEでの動作指示
-o-animation は、Operaでの動作指示、そして
animation は、ブラウザ指定なしでの動作指示を意味し、animation がアニメーションです。

animation: (関数名 持続時間 ディレイ時間 繰り返し回数 動き方 逆再生)

このdivの場合は、「transformという関数(別に指示)で、開始から0.5秒だけ遅延させ、4秒かけて(1,0.15,.29,1.21)という動き方で逆再生しながら無限にアニメーションさせる。」と翻訳できます。



次はChromeの指示ですが、

@-webkit-keyframes transform {
  0%  {
    border-radius:0 0 0 0;
    background:#e94c3d;
    -webkit-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    -o-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  25%  {
    border-radius:50% 0 0 0;
    background:#f2c42d;
    -webkit-transform: rotate(45deg);
    -moz-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    -o-transform: rotate(45deg);
    transform: rotate(45deg);
  }
  50%  {
    border-radius:50% 50% 0 0;
    background:#1bbc9b;
    -webkit-transform: rotate(90deg);
    -moz-transform: rotate(90deg);
    -ms-transform: rotate(90deg);
    -o-transform: rotate(90deg);
    transform: rotate(90deg);
  }
  75%  { 
    border-radius:50% 50% 50% 0;
    background:#2d3d50;
    -webkit-transform: rotate(135deg);
    -moz-transform: rotate(135deg);
    -ms-transform: rotate(135deg);
    -o-transform: rotate(135deg);
    transform: rotate(135deg);
  }
  100% {  
    border-radius:50%;
    background:#9b58b5;
    -webkit-transform: rotate(180deg);
    -moz-transform: rotate(180deg);
    -ms-transform: rotate(180deg);
    -o-transform: rotate(180deg);
    transform: rotate(180deg);
  }
}


0%から100%まで、25%刻みでどんな色、形になっているかを指示しています。

たとえば0%のときは、
border-radius の値がすべて0なので、正方形ですね。
背景色はお好きな色を、
そして先ほどの関数の説明、rotate(0deg) は、0度で回転した状態を意味します。つまり、何も回転してないってことですね。

もう一例、25%のときは、 border-radius が1番目の値だけ50%なので、左上の角が丸くなって、残りは角のままという状態です。

さらに、rotate(45deg) から、45度だけ回転をしている状態です。



それぞれの時間の状態になるように、先にdivで定義したような動き方をしなさい、という指示ですね。



そして、Chrome、FireFox、IE、Operaと同様にCSSを追加し、最終的にすべてのブラウザに対応できるように、@keyframes transform {} を記述しましょう。



見ての通りですが、回転角度は rotete(数値deg)です。

参考までに、cubic-bezier(1,0.15,.29,1.21) という数字をどうやって出すか、ですが、http://matthewlein.com/ceaser/で、動かしたい種類を選ぶだけで数値を表示してくれます。

※今回使用した、「transform」という関数名は、好きな名前に変更できます。




Written by Creative Flake

コメント

このブログの人気の投稿

ゲシュタルトの法則をWebデザインにも利用しよう

こんにちは、クリエイティブフレークです。

一度は聞いたことがあるかもしれない「ゲシュタルト」。

ゲシュタルト
人間の精神を、部分や要素の集合ではなく、全体性や構造に重点を置いて捉える。この全体性を持ったまとまりのある構造をドイツ語でゲシュタルト(Gestalt :形態)と呼ぶ。



人間の脳がものの形、要素をどのように認識するか、ということですね。

人間がゲシュタルトを感じるときに起こる、さまざまな種類を「プレグナンツの法則」と呼ぶそうですが、その具体例を簡単に紹介。





ゲシュタルトの法則1 : 近接の法則



近接の法則は、近くにあるもの同士が同じグループだと認識されやすい。





ゲシュタルトの法則2 : 類同の法則



類同の法則は、同じ色や、同じ形同士が同じグループだと認識されやすい。





ゲシュタルトの法則3 : 共通運命の法則



共通運命の法則は、同じ方向に動くもの、同じ周期で点滅するなどが同じグループだと認識されやすい。
共通運命の法則は、近接の法則や類同の法則よりも強く働く。





ゲシュタルトの法則4 : 良い連続の法則



良い連続の法則は、図形はつながった形になりやすいと認識されやすい。
近接、類同、共通運命の法則から、切れ目がなくや突然変化しない図形がよいものだと分かる。





ゲシュタルトの法則5 : 閉合の法則



【】や()のように、閉じた形は同じグループだと認識されやすい。
】【 は同じグループと認識しづらい。





ゲシュタルトの法則6 : 面積の法則



小さいものが図として、大きいものが背景として認識されやすい。





ゲシュタルトの法則7 : 対称の法則



対称な図形は閉じた図として認識されやすい。





このゲシュタルトの法則は心理学をはじめとした様々な分野に応用されていますが、人間の特性を活かすという点で、デザインの分野にも活用されています。

たとえばリモコンのボタン配列。



数多くのボタンを、誰が見ても直感的に分かりやすく、誤操作させないように配置しています。





こちらは私のMacのドック。



急いでいるとよく間違ったアイコンをクリックしてしまうので、試行錯誤の末、この配列が一番使いやすい結論に。





Webデザインにおいては、もしすべてのパーツが単調に置かれていたら……



どこを見ていいのかも分かりづらく、どれがクリックできるのかも分かりづらい。



色や形を変えたり、適度な距…

白の可能性は無限大!無料の白い背景10個まとめ

使用度の高い白とグレーを使った、無料でダウンロードできる背景パターンを集めました。
定番・王道パターンから、最新トレンドのパターンまで素敵なパターンをまとめています。



大きめ白菱型パターン 立体感のあるグラデーションの白菱型パターンはふんわりとした印象にも、ラグジュアリーな印象で、美容系やウェディング系にも使える素材。

大きめ白菱型パターン素材のダウンロード



小さめ白菱型パターン こちらも自然な感じに立体感のある白菱型パターン。背景はもちろん、ボタンの一部にしても使えそうなおしゃれな素材。

小さめ白菱型パターン素材のダウンロード



四角なパターン 幾何学的な空間のような四角モチーフのパターン。奥行き感があって、Web素材にも印刷用素材にも使えそう。

四角なパターン素材のダウンロード



ネットワークなパターン 点と点を線でつないだ、ネットワークのような格子状パターン。スタイリッシュな印象にぜひ。

ネットワークなパターン素材のダウンロード



六角形のシームレスパターン 六角形をモチーフにしたつなぎ目のない、シームレスパターンです。色を変えたり、透過度を変えてみてアートな印象にも。

六角形のシームレスパターン素材のダウンロード



四角格子のパターン ドットでつないだ四角形の格子のパターンは、かわいい感じに。

四角格子のパターン素材のダウンロード



白のポリゴンパターン 自分で描くと結構大変なポリゴンパターン。数年前から人気継続中です。

白のポリゴンパターン素材のダウンロード



白のポリゴンパターン 上のポリゴンパターンとはちょっと違う、折り紙を折ったようなパターン。人とは違うポリゴンを探していたという方はぜひこちらを。
白のポリゴンパターン素材のダウンロード



セールっぽい放射状のパターン 白い放射状はクリーンでおしゃれ。中心を引き立てたいときにも、背景にももちろん。
セールっぽい放射状のパターン



三角形のパターン どんなイメージにも使えそうな三角形のパターン。ちょっとした色のアクセントでさらに目を引く印象に。
三角形のパターン素材のダウンロード







Written by Creative Flake

Photoshopで文字にアンチエイリアスをかける

こんにちは、クリエイティブフレークです。

Photoshopで文字を書いていると、「太字を選択するほどでもないけど、あと気持ちちょっと太かったらいいのに!」、「あとちょっとクリアに見せたいのに!」と思ったことはありませんか?



そんなときに活用したいのが「アンチエイリアス」です。

「エイリアス」とは曲線がギザギザ、ガタガタに表現されてしまうことで、ドット絵みたいに見えます。

なので「アンチ」って言うんですね。



実際に見比べてみると


▲ヒラギノ角ゴシックPro 24pt



明らかに「なし」を選択したものはギザギザです。

「太く」と「シャープ」はちょっと太い感がありますが、「鮮明」と「なめらか」の差が難しいですね。



今度はフォントサイズを変えてみました。


▲ヒラギノ角ゴシックPro 14pt



個人的には、文字が太くなる「シャープ」と「太く」がややジャギー感(ギザギザ感)が残っていますが、「鮮明」と「滑らかに」はフォントサイズを小さくしたときに潰れてしまいやすいイメージです。



では実際どうやって変更するの?なのですが、Photoshop CS6を例に説明します。


▲テキストツール(Tの形)を選びます




▲文字を書いたら上のアンチエイリアスを選びます(うちのマシンが英語ですみません)

Web用や印刷用など、用途によって強弱を使い分けたいですねヽ(・∀・)ノ



Written by Creative Flake