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

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

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

監修してくれたメンター

nakamoto

アジマッチ有限会社代表取締役社長。書籍化歓迎。対応業務:PHP(Laravel)、機械学習、Vue.js、LAMP・AWS、越境EC、CTO、エンジニア採用、CTO、経営者の不安解決コンサルティング。

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

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

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

 

目次

1時間でできる無料体験!

 

そもそも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の第2引数に時間を渡すこともできます。

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

単位はmsです。

 

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

 

コラム

実は私も!?独学で損する人の特徴

「スクールは高いから独学で成功する」という気持ちの方は多いと思います。
もちろんその方が金額は低く抑えられるでしょう。
ただ 独学には向き不向きがあり、実はスクールが向いている人も大勢います。

そんな方のために参考として、 テックアカデミー卒業生がスクールを選んだ理由 をご紹介します。

  • ・困って挫折しそうなときに、質問や相談できる相手がいる環境で学んでいきたいなと思った
  • ・わかった気になっているだけだったので、自分を追い込む環境に置いた方がいいと感じた
  • ・スクールのカリキュラムで市場に求められるスキルを学ぶべきと思った

少しでも当てはまる部分があれば、 スクールが向いているかもしれません。
お試しのつもりで、まずは一度 無料相談 に参加してみませんか?

現役エンジニア・デザイナーに何でも気軽に相談できる30分すべて無料で できます。
無理な勧誘は一切ない ので、お気軽にご参加ください。

今なら相談した方限定の割引・参加特典付き! 無料相談はこちら

まとめ

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

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

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

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

 

大石ゆかり

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

田島悠介

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

大石ゆかり

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

田島悠介

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

 

JavaScriptを学習中の方へ

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

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

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

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

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

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

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

初心者・未経験でもできる。まずはテックアカデミーに相談しよう

プログラミングを独学していて、このように感じた経験はないでしょうか?

  • ・調べてもほしい情報が見つからない
  • ・独学のスキルが実際の業務で通用するのか不安
  • ・目標への学習プランがわからず、迷子になりそう

テックアカデミーでは、このような 学習に不安を抱えている方へ、現役エンジニア講師とマンツーマンで相談できる機会を無料で提供 しています。
30分間、オンラインでどんなことでも質問し放題です。

「受けてよかった」と感じていただけるよう 厳しい試験を通過した講師 があなたの相談に真摯に向き合います。

「ただ気になることを相談したい」
「漠然としているがプロの話を聞いてみたい」

こんな気持ちでも大丈夫です。

無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)

今なら参加者限定の割引特典付き! 無料相談を予約する