くろひょうのwebデザインのお勉強帳

フェリカテクニカルアカデミー web制作科の受講生です。授業の要点、復習でつまづいた点などを記録し、レベルアップに励みます。

クリエイターになるための、お勉強の記録帳

[jQuery]スライドして表示を切り替える slideUp( )/ slideDown( )/ slideToggle()

slideUp( ) と slideDown( )

指定した要素の高さを0から本来の高さにするのがslideDown( )、反対に本来の高さから0にするのがslideUp( )です

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

  $(セレクター).slideUp(スピード, コールバック関数);

  $(セレクター).slideDown(スピード, コールバック関数);

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

表示状態

f:id:pleasure10501:20150420163609p:plain

クリックすると非表示状態に

f:id:pleasure10501:20150420163618p:plain

スクリプト

$(function(){
  $('dt').click(function(){
    if( $('dd').css('display')=='block'){
    $('dd:not(:animated)').slideUp('slow');   ※1
    } else {
     $('dd').slideDown('slow');
    }
  });
  });

※1 セレクターddに:not(:animated)を付加して、アニメーション処理中には他の操作を受け付けないようにしている

HTML
<body>
<dl>
<dt>スライドして表示状態を切り替える
<dd>slideDown()とslideUp()はスライドアニメーションで表示・非表示状態を切り替える命令です</dd>
</dt>
</dl>
</body>

CSS

dl{
  width: 350px;
  margin: 20px auto;
}
dl dt {
  background: #019FA6;
  line-height: 40px;
  text-align: center;
  cursor : pointer; ※2
}

※2 dt要素にマウスを移動するとカーソルがポインターになり、クリックできることを見えやすくしている

dl dd {
    border: 1px solid  #019FA6;
    height: 200px;
    padding: 20px;
}

 slideToggle( )

slideUp( )とslideDown( )はif文で条件分岐をしなければならないのですが、slideToggle( )を使うと1行で同じ内容を命令できます。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

  $(セレクタ).slideToggle(スピード, コールバック関数);

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

下のスクリプトの処理内容は上の例と全く同じです。

$(function(){
   $('dt').click(function(){
     $('dd:not(:animated)').slideToggle(1000);
   });
  });