jQuery 「エフェクト」スライド効果

.slideUp()は、要素の高さを元の高さから0まで徐々に変化させます。逆に.slideDown()は、要素の高さを0から元の高さまで徐々に変化させます。.slideToggle()は、要素が表示されているかどうかによって.slideUP()または.slideDown()のいずれかの効果を実行します。例えば、対象要素がスライドアップしている状態であれば.slideDown()、スライドダウンしている状態であれば.slideUp()を実行する動作を付与可能です。これらの関数の第1引数は、アニメーション効果にかける時間です。「fast(速く)」「slow(遅く)」といった文字列での指定の他、ミリ秒単位の数値でも指定できます。なお、fastは200ミリ秒、slowは600ミリ秒を指定したのと同じになります。.fadeIn()及び.fadeOut()では、この値は省略可能で、省略した場合400ミリ秒が設定されたものとして実行されます。最後の引数は、アニメーションが完了したときに実行されるコールバック関数です。

書式

$("対象要素").slideUp([効果時間],[コールバック]);
$("対象要素").slideDown([効果時間],[コールバック]);
$("対象要素").slideToggle([効果時間],[コールバック]);
$('div').slideUp('fast', function(){
   alert('スライドアップしました');
});
$('div').slideDown('slow', function(){
   alert('スライドダウンしました');
});
$('div').slideToggle(400, function(){
   alert('スライドトグルしました');
});

サンプル

スライド効果。mainクラスのボタンをクリックするとsubクラス内の「menu1」「menu2」が.slideToggle()メソッドによってスライドダウン、スライドアップします。「menu1」「menu2」は.hide()メソッドを用いて、ページを表示したときは非表示の状態にしています。

 <body>
    <button class="main" href="#">main menu</button>
    <ul class="sub">
      <li>menu1</li>
      <li>menu2</li>
    </ul>
    <script>
    $(document).ready(function(){
      //subクラスの要素を隠す
      $(".sub").hide();
      //mainクラスの要素をクリックしたらsubクラスの要素をslideToggleさせる
      $(".main").on('click' ,function(){
       $(".sub").slideToggle(400);
      })
    });
    </script>
    </body>
実行結果
初期画面
実行結果
main menuボタンをクリックした後