animateメソッドを使ってjQueryでアニメーションを実装する方法
プログラミング初心者向けに、jQueryのanimateメソッドを使ってアニメーションを実装する方法を解説しています。実際にアニメーションを作りながら説明しているので、サイトに動きを出したい方はぜひ参考にしてみてください。
TechAcademyマガジンは受講者数No.1のオンラインプログラミングスクールTechAcademy [テックアカデミー]が運営。初心者向けに解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。
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サービスを作りたい方はぜひご覧ください。