icon
icon

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

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

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

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分か60分お好きな時間が選べて、かつ3回まで すべて無料で ご利用できます。
無理な勧誘は一切ない ので、お気軽にご参加ください。

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

まとめ

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週間限定)

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