アニメーションで表示・非表示を切り替えたいという時、純粋なJavaScriptで実現しようとすると、とてつもない記述量になりますが、jQueryではシンプルな記述でこれを行うことができます。
jQueryには、定番のアニメーションを作るメソッドとして、animate()メソッドというのがありますが、今回は単純な表示・非表示の場合に適切な3つのメソッドを紹介します。
表示・非表示を切り替えるtoggle()
1 |
toggle([duration] [,easing] [,callback]) |
引数 | 型 | 説明 |
---|---|---|
duration(オプション) | String|Int | アニメーションの速度を指定 |
easing(オプション) | String | アニメーションの種類を指定 |
callback(オプション) | Function | アニメーション後に実行する関数を指定 |
クリックされる毎に、表示・非表示を切り替える時などに使われるメソッドです。
以下のサンプルでは、表示ON/OFFボタンがクリックされると、#textが表示・非表示されます。
HTML
1 2 |
<button id="toggle">表示ON/OFF</button> <p id="text">表示されます。</p> |
jQuery
1 2 3 |
$('#toggle').on('click', function() { $('#text').toggle('slow'); }); |
See the Pen [jQuery] 表示・非表示のサンプル by Yuichi Iwayama (@UXMILK) on CodePen.
toggle()の引数には、アニメーションの速さを指定でき、'fast' や 数値を指定してアニメーションの速度を指定できます。
また、第二引数のeasingや第三引数のcallbackを指定することで、もう少し細かいアニメーションの指定をすることができます。
表示するshow() / 非表示にするhide()
1 2 |
show( [duration] [, easing] [, callback] ) hide( [duration] [, easing] [, callback] ) |
toggle()とは異なり、表示と非表示のメソッドが分かれています。引数に関しては、toggle()と同じように指定することができます。
以下の例では、「表示する」「非表示にする」ボタンをクリックすると、それぞれ表示・非表示されます。
HTML
1 2 3 |
<button id="show">表示する</button> <button id="hide">非表示にする</button> <p id="text">表示されます</p> |
jQuery
1 2 3 4 5 6 7 8 |
//表示する $('#show').on('click', function() { $('#text').show('slow'); }); //非表示にする $('#hide').on('click', function() { $('#text').hide('slow'); }); |
toggle()は、ボタンのクリックによって表示・非表示を切り替える用途で使うことが多いですが、show()とhide()は処理の途中などに使うことが多いです。