jQueryで移動するアニメーションなどを作成する:animate()

jQueryで要素に対してアニメーションをつけたい時は、animate()を使います。

このanimate()は、任意のアニメーション効果を作成するためのメソッドで、大きさ、幅、位置などを変化させることができます。

animate()を使ったアニメーション効果

.animate(パラメータ, [速度], [イージング], [コールバック])

animate()は、4つの引数をとります。パラメータでアニメーション効果、速度でアニメーションの速度、イージングでアニメーションの動き方、コールバックでアニメーションが終わった後の処理をそれぞれ指定します。

animate()では、第一引数のパラメータ以外はすべてオプションです。

指定できるパラメータ

パラメータには、要素を変化させるスタイルを指定します。スタイルはCSSのプロパティをキャメルケースで記述します。 

例えば、margin-leftmarginLeftと記述します。

なお、指定できるスタイルは、数値型の値をとるものだけです。

animate()をつかったサンプル

次からanimate()をつかったサンプルを紹介していきます。使用するHTMLを以下のもので、ボタンをクリックするとアニメーションが始まるサンプルを作成します。

*以下のサンプルはブラウザによって動作しない可能性があります。動かない場合は、Google Chromeで試してみてください。

<button id="button">ボタン</button>
<div id="target">ターゲット</div>

移動する

marginLeftを指定することで、横に動くサンプルです。あらかじめ、CSSでターゲットに対してpositionプロパティを指定していればtop,leftなどのプロパティも使用できます。

$("#button").on("click", function () {
    $("#target").animate({
        "marginLeft": "100px"
    });
});
ターゲット

連続で移動する

メソッドチェーンと呼ばれるメソッドをつなげて記述することで、連続して動かすことも可能です。

$("#button").on("click", function () {
    $("#target").animate({
        "marginLeft": "100px"
    }).animate({
        "marginTop": "100px"
    });
});
ターゲット

透過するアニメーションの後にアラートを出す

引数に、function(){処理}のように、コールバック関数を渡すことでアニメーションが終わった後の処理を記述できます。

$("#button3").on("click", function () {
  $("#target3").animate({
    "opacity": "0"
  },
  function(){
    alert("消えました")
  });
});
ターゲット

このように、animation()を使うことで、CSSを指定するのと同じ間隔でさまざまなアニメーション効果を作成することができます。


イベント

2017/12/05(火)
Design Thinking Square