Tags

閉じる

Category

閉じる

Search

Search

閉じる

戻る

初めまして!
14年新卒で入社予定の、HTMLファイ部のゴンです!

現在は入社前インターンシップとして、カヤックに通い、
一流のマークアップエンジニアになるべく、研鑽を積んでおります。

今回は、CSSアニメーションやjQueryで使う、イージングの話を書こうと思います。

イージングの話!

イージングとは

イージングは、CSSアニメーションやjQueryで、アニメーションに緩急をつけるために使うプロパティです。
CSSやjQueryでアニメーションを作るとき、ease-inとか、linearとか、設定することがあると思います。

CSSではanimation-timing-functionjQueryではEasingと呼ばれるものです。

いろんな呼び方があるとは思うのですが、この記事ではイージングで統一します。

下はjQueryでアニメーションをするときの例です。

$("div.ball").animate({
    left: "300px";
}, 3000, "easeInQuad");

この"easeInQuad"にあたる部分が、イージングです!
イージングを設定することで、動きに、勢いや波をつけることができます。

イージングを設定して、ボールを左右に動かしたものがこちら!

ball_in_quint.gif

ちなみに、イージングがないとこんな感じです。

ball_linear.gif

イージングを使いこなそう!

イージングは結構、種類が多いです。
例えば、jQuery Easing Pluginでは、なんと30種類以上のイージングが用意されています!

でも、30種類もあっても、ぱっと見、違いがよくわからないなんてことありませんか?
今回は、私の独断と偏見で、jQuery Easing Pluginのイージングを中心に、
それぞれのイージングの特徴と、使いどころを紹介します!

ちょっと、注意事項

CSSや、jQueryでのアニメーションのやり方

今回はアニメーションのやり方そのものについては、説明を省き、イージングの話を中心に書きます。
CSSや、jQueryでのアニメーションのやり方については、以下のリンクなどを参考にしてみてください。

thumb_jq_animate_ref.jpg
animate(params, [duration], [easing], [callback]) - jQuery 日本語リファレンス

thumb_css_anium.jpg
今日からCSS3アニメーションを使えるようになるチュートリアル

CSSアニメーションの場合

jQuery Easing Pluginに沿って説明するので、基本的には、jQuery向けの解説になりますが、
CSSでもcubic-bezierというキーワードを使うことで、
jQuery Easing Pluginと同じイージングを使うことができます
イージングの対応表を調べたいときは、このサイトが便利です。

thumb_easing.jpg
Easing Function 早見表

接頭辞で動きが決まる!

先ほども書いた通り、イージングにはたくさんの種類があるのですが、
大きく、3つに分けることができます!
名前をよく見ると、easeIn○○とか、easeOut××とかになってますよね。
この接頭辞は、動きがだんだん速くなるのか、遅くなるのかを表しています。

easeIn○○

ball_in_quint.gif

だんだん速くなるイージングです。
急に止まる印象を受けるので、使いどころは少ないかもしれません。

easeOut○○

ball_out_quint.gif

だんだん遅くなるイージングです。
レスポンスが早いので、マウスオーバーのアクションとかで使いやすそうです。

easeInOut○○

ball_inout_quint.gif

最初は遅く、途中で速くなって、また最後に遅くなるイージングです。
これも、滑らかに動くので使いやすいです。

○○の中身で緩急が変わる!

次に、接頭辞の後ろにつく、○○の中身を解説していきます。
easeInQuadとか、easeOutCubicとかです。
この部分は、遅くなったり、速くなったりするときの、緩急のつけ方を表しています。

一緒に載せるグラフは、横軸が時間で、縦軸が変化量(座標とか高さとか)を表しています。

それでは順番に行きます!

Quad

quad.gif
Quadは、一般的なイージングの一つです。
ちなみに、Quadは"Quadratic"の略で、"二次の"という意味の形容詞です。
とりわけ、二次関数のことを指してます。

自然な動きなので、基本的には、何に使ってもいいと思いますが、
特に、物が落ちるような動きに合ってます(二次関数なので)!

100ton.gif

どすん。

Cubic, Quart, Quint

cubic.gif quart.gif quint.gif
いきなりですが、3ついっぺんに解説します。
この3つは、非常によく似ています。

Cubicは、そのまま"Cubic"で、三次関数
Quartは、"Quartic"の略で、四次関数
Quintは、"Quintic"の略で、五次関数

それぞれ意味しています。
数字が増えてるだけですね。

数字が増えると、緩急が強くなります!
並べて比較してみました。

bars_1.gif

この3つは、Quadと違って、これ!といった使い道はありませんが、
緩急の強さを調整したいときに、覚えておくと便利です。

Sine

sine.gif
Sineは、三角関数のサインのことです。
三角関数で作られたイージングということですね。

わざわざ、Sineを積極的に使う方は、少ないかもしれませんが、使い道は多いです。
Sineはバネや振り子などの、波のような動きに使うとぴったりです(三角関数なので)!

spring.gif

なんだか理科の実験みたいですね......。
Quadに似てるので、これも使いやすいと思います。

Expo

expo.gif
Expoは、"Exponential"の略で、指数関数を表したりしますが、
普通の形容詞としても、"急激な"と言う意味があります。

その名の通り、かなり急な動きをするのが特徴です。
動きはQuintに近いですが、Quintより緩急が激しいです。

bars_2.gif

Circ

circ.gif
Circは、"Circular"の略で、"円の"という意味の形容詞です。
グラフが、円を1/4にカットした形になってるのが、わかるかと思います。

Circは他のイージングと違って、少し変わった動きをします。
加速するときが非常に速く、InOutで使うと一瞬消えるかのような速さ!

ball_inout_circ.gif

ちょっと癖のある動きかも......。

その他!

残りのものは、分類しづらいので、簡単に紹介します。

Backは、その名の通り、行き過ぎて、少し戻るような動きをします。 ball_out_back.gif

Elasticは、引っ張ったバネを離したときのような動きです。ぼよよん。
ball_out_elastic.gif

Bounceは、跳ねます(他に言いようがない)。 ball_out_bounce.gif

この辺は、見たままの動きです。
手軽に面白い動きをつけられるので、便利ですね。

まとめ!

その他以外を、全部並べてみました!

bars_3.gif

緩急が...
緩やか普通激しい
SineQuadCubicQuartQuintExpo(Circ)

(Circは動きに癖があるので括弧つきです)

覚えておくと良いポイントなど

  • 落下する動きには、Quadを使うとリアル
  • バネや振り子には、Sineを使うとスムーズ
  • 急な動きを付けたいときは、ExpoやQuintを使うといい感じ

もちろん、最終的には、自分の感覚に頼ることになると思いますが、
特徴を把握しておくと、イージングを選ぶとき、迷わずに済むことが増えるかもしれません。

みなさんもぜひ色々試して、イージングの面白さを感じてみてください!

最後に告知です!

カヤックでは、毎年、いろいろな新卒採用企画をやっているのですが、
今年はこちら!

thumnail_godo.jpg
1社だけの合同説明会|面白法人カヤック

30名近くのカヤック社員が、1人1人ブースを持ち、1社だけで合同説明会を開催します!

ギネスに載った男からTシャツ部部長、アイドルマニアに、なんと退職者まで!
社会人の方でも観覧可能だそうです。

2014年1月11日、秋葉原UDXにて開催します。
多くの方のご参加を、お待ちしております!