jQueryでアコーディオンパネル

jQueryでアコーディオンパネルを実装してみます。
サンプルも設置してますので、動作の確認が出来ます。

サンプル

タイトル1
本分本分本分本分本分本分本分本分本分本分
タイトル2
本分本分本分本分本分本分本分本分本分本分
タイトル3
本分本分本分本分本分本分本分本分本分本分

↑閉じているタイトルをクリックすると本文が表示されます。

設置コード

javascript
まずは、htmlソースのhead内でjqueryを読み込みます。

<script type='text/javascript' src='jquery-1.6.1.min.js'></script>

今回の動作を設定している以下のソースをhtmlソース内に適当に配置します。

<script type="text/javascript">
jQuery(function() {
  jQuery("dd:not(:first)").css("display","none");
  jQuery("dl dt").click(function(){
    if(jQuery("+dd",this).css("display")=="none"){
       jQuery(this).siblings("dd").slideUp("slow");
       jQuery("+dd",this).slideDown("slow");
    }
  });
});
</script>

htmlソース

以下のようなソースを記述します。

<dl>
   <dt>テスト</dt>
   <dd>aaaaaaaaaaaaaaaaaaa</dd>
   <dt>テスト</dt>
   <dd>aaaaaaaaaaaaaaaaaaa</dd>
   <dt>テスト</dt>
   <dd>aaaaaaaaaaaaaaaaaaa</dd>
</dl>

css

<style type="text/css">
* {
margin:0px;
padding:0px;
}
dl{
width:400px;
margin:50px auto;
}

dl dt {
background:#eeeeee;
border-bottom:1px solid #dddddd;
cursor:pointer;
}
dl dd {
border:1px solid #cccccc;
border-top:none;
height:100px;
}
</style>

今回のサンプルでは、タイトル1の本文が最初に開いた状態ですが、javascript内の
(“dd:not(:first)”)となっているところを
(“dd”)とすると、最初は全てが閉じられており、クリックされて初めて、本文が読めるといった感じになります。

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です