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

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

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

JavaScriptのライブラリであるjQueryのanimateメソッドを使ってアニメーションを実装する方法を解説しています。

ボタンなどの要素を目立たせたいという方は覚えておくと便利でしょう。

 

なお本記事は、オンラインブートキャンプ フロントエンドコース(JavaScript・jQuery講座)の内容をもとにしています。

 

animateメソッドとは

animateメソッドはその名の通りアニメーションを実装するためのメソッドで、オブジェクトの移動や、透過率などを変更することができます。

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

 

大石ゆかり

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

田島悠介

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

大石ゆかり

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

田島悠介

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

 

animateメソッドの書き方

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

上記のように動かす要素名はクラスやIDなどで指定します。

また、動かすアニメーション名は透明度ならopacity、動かすならmarginLeftなどと言った名前が入ります。動かす距離は、pxで指定しましょう。

このようにほんの数行でアニメーションを実装することができます。

 

[PR] JavaScript・jQueryで挫折しない学習方法を動画で公開中

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

例だけではわかりにくいと思うので、簡単にアニメーションを実装してみましょう。

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です。上のコードだと一秒かけて動くという意味になります。

 

まとめ

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

他の動作もjQueryでは簡単に実行することができるので、ぜひ理解を深めていきましょう。

 

大石ゆかり

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

田島悠介

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

大石ゆかり

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

田島悠介

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

 

[お知らせ]TechAcademyでは最短4週間でフロントエンドの技術が身につくフロントエンドオンラインブートキャンプを開催しています。jQueryを使ってリッチなWebサービスを作りたい方はぜひご覧ください。