animateメソッドを使ってjQueryでアニメーションを実装する方法

プログラミング初心者向けに、jQueryのanimateメソッドを使ってアニメーションを実装する方法を解説しています。実際にアニメーションを作りながら説明しているので、サイトに動きを出したい方はぜひ参考にしてみてください。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。

監修してくれたメンター

nakamoto

アジマッチ有限会社 代表取締役
対応業務:PHP(Laravel)、機械学習、Vue.js、LAMP・AWS、越境EC、スマホアプリ、Unity、Rails、スマートコントラクト、講師、執筆、CTO

JavaScriptのライブラリであるjQueryのanimateメソッドを使ってアニメーションを実装する方法について、テックアカデミーのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。

animateメソッドを利用すると、簡単にアニメーションを適用できます。

実務で、ちょっとアニメーション処理を加えたい時に利用してみてください。

目次

そもそもJavaScriptについてよく分からないという方は、JavaScriptとは何なのかについて解説した記事を読むとさらに理解が深まります。

 

animateメソッドとは

animateメソッドはその名の通りアニメーションを実装するためのメソッドです。

animateメソッドでは、オブジェクトの移動や透過率などを変更できます。

アニメーションを実装するためのメソッドは何個か存在しますが、簡単なアニメーションの場合、animateメソッドが一番使用されています。

 

大石ゆかり

田島メンター!アニメーションのように要素を動かしたり、変化させたりすることはできますか?

田島悠介

jQueryのanimateメソッドがいいね。取得した要素を、指定した大きさや位置に、指定した時間で、移動させることができるんだよ。

大石ゆかり

toggleメソッドやhideメソッド何かも、ゆっくりと変化しますよね。

田島悠介

そうそう。あれも一種のアニメーションなんだ。では、animateメソッドを書いてみよう!

 

animateメソッドの書き方

ここではanimateメソッドの基本的な書き方を解説します。

基本のコード

基本のコードとしては動かす要素名に対してparamsプロパティで指定したアニメーションを適用します。

[duration], [easing], [complete]は省略可能です。

$('動かす要素名').animate(params, [duration], [easing], [complete])

使用例

$(function() {
  $('動かす要素名').animate({
    '動かすアニメーション名': '動かす距離'
  });
});

動かす要素名はclassやidで指定します。

動かすアニメーション名はopacity(透明度)や、marginLeft(右に動かす)等の指定が可能です。

動かす距離は、100pxのように指定可能です。

animateメソッドのプロパティ例

animateメソッドでアニメーションに利用できるプロパティは、以下の4つです。

  1. params
  2. duration
  3. easing
  4. complete

これら4つの役割と利用例を解説します。

params

paramsプロパティは必須です。

paramsプロパティでは、最終的に変化させるCSSのキーと値のマップ値を指定します。

animateメソッドのparamsプロパティに指定できるcssのコードは、基本的に数値で表せるものです。

よく利用するものとして次の10個を例示します。

  1. width(幅)
  2. height(高さ)
  3. top(上)
  4. left(左)
  5. right(右)
  6. bottom(↓)
  7. margin(マージン)
  8. padding(パディング)
  9. fontSize(フォントサイズ)
  10. opacity(透明度)

実際にはcssのmargin-leftを指定する場合leftとmarginを組み合わせてmarginLeftのような指定を行います。

cssのmargin-leftとは異なり、marginLeftという記法にする必要があります。

fontSizeもcssの記法であればfont-size記載するところを、fontSizeという記法で指定します。

これはキャメルケースという記法で、区切り文字部分を大文字で表す記法です。

animateメソッドを利用する上での文法上の決まりですので使ってみてください。

実際の指定は、pxやemや%を単位として指定します。

たとえば、”width”: “100px”と指定することで、id=”box”要素の幅が100pxに伸びるアニメーションになります。

$("#box").animate({
	"width": "100px",
});

duration

durationプロパティは省略可能なオプションです。

一般的には数値を指定します。

1000を指定すると、1秒のアニメーションを意味します。

何も指定しないとnormalという指定になります。

normal以外にもslowやfastという指定値も可能です。

easing

easingプロパティは省略可能なオプションです。

easingプロパティでは、値の変化を調節する独自関数を指定できます。

easingプロパティでは、swingとlinearという指定値が用意されています。

swingが初期値です。

swingは、始めと終わりは緩やかで途中は速めのアニメーションになります。

linear 一定スピードのアニメーションになります。

complete

complete プロパティは省略可能なオプションです。

complete プロパティでは、アニメーション終了時に実行する処理を指定できます。

[PR] フロントエンドで挫折しない学習方法を動画で公開中

実際にアニメーションを作ってみよう

簡単にアニメーションを実装してみましょう。

id=”box”という要素をアニメーションによって動かしてみます。

今回のコードは幅40px、高さ40pxの箱を下に200px動かすコードになっています。

HTML

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>CSS overflow</title>
    <link rel="stylesheet" type="text/css" href="sample.css">
    <script src="https://code.jquery.com/jquery-3.0.0.min.js"></script>
    <script type="text/javascript">
      $(function() {
        $('#box').animate({
          'marginTop': '200px'
        });
      });
    </script>
  </head>
  <body>
    <div id="box"></div>
  </body>
</html>

CSS

#box {
  width: 300px;
  height: 300px;
  background: black;
}

 

jQueryの各行の記述ついて解説していきます。

$(function()

この行はjQueryのコードを実行するための決まり文句です。この関数内に書かれたコードが実行されます。

$('#box').animate({

idがboxの要素に対して、animateメソッドを実行しています。

'marginTop': '200px'

boxのmargin topを200pxに変更します。それによって下に動いているように見えます。

 

また、animateの第二引数に時間を渡すこともできます。

$(function() {
  $('#box').animate({
    'marginTop': '200px'
  },1000);
});

単位はmsです。

結果的に、幅40px、高さ40pxの箱を下に200px動かします。

 

まとめ

jQueryのanimateメソッドについて解説しました。

animateメソッドでは、$(‘動かす要素名’).animate(params, [duration], [easing], [complete])のような指定をしました。

animateメソッドでは、paramsプロパティだけ指定すれば、簡単にアニメーションを適用できました。

他の動作もjQueryでは簡単に実行することができるので、ぜひanimateメソッドを利用してみてください。

大石ゆかり

上から下に落ちているように見えますね。

田島悠介

animateメソッドで簡単に実現できるんだよ。

大石ゆかり

連続で動作したり、アニメーション終了後に関数を実行させるようなことは出来ますか?

田島悠介

.animate().animate()のようにメソッドチェーンの形にすると、連続で動作させることが出来るよ。animateメソッドの第二引数が時間指定、第三引数がアニメーションの種類指定、第四引数が動作完了後の関数指定になってるよ。

 

JavaScriptを学習中の方へ

これで解説は終了です、お疲れさまでした。

  • つまずかず「効率的に」学びたい
  • 副業や転職後の「現場で使える」知識やスキルを身につけたい

プログラミングを学習していて、このように思ったことはありませんか?

テックアカデミーのフロントエンドコースでは、第一線で活躍する「プロのエンジニア」が教えているので、効率的に実践的なスキルを完全オンラインでしっかり習得できます。

合格率10%の選考を通過した、選ばれたエンジニアの手厚いサポートを受けながら、JavaScript・jQueryを使ったWebサービス開発を学べます。

まずは一度、無料体験で学習の悩みや今後のキャリアについて話してみて、「現役エンジニアから教わること」を実感してみてください。

時間がない方、深く知ってから体験してみたい方は、今スグ見られる説明動画から先に視聴することをおすすめします!