jQuery UI Accordion

jQuery UI Accordionを使った効果的なセクション管理

このドキュメントでは、jQuery UI の Accordion ウィジェットの機能、オプション、メソッド、イベントについて詳細に解説し、サンプルコードを交えて理解を深めます。

1. 概要

Accordion ウィジェットは、複数のコンテンツを折りたたんで表示するパネルです。見出しをクリックすることで、対応するコンテンツを表示・非表示できます。
FAQページや、複数ステップを含むフォームなどで利用されます。

2. 基本的な使い方

Accordion ウィジェットを使用するには、まずHTMLで <div> 要素の中に、見出し (<h3> など) とコンテンツ (<div>) のペアを記述します。
そして、jQuery UI のライブラリを読み込んだ後、以下のJavaScriptコードでアコーディオンを初期化します。

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="utf-8">
  <title>jQuery UI Accordion - 基本</title>
  <link rel="stylesheet" href="//code.jquery.com/ui/1.13.2/themes/base/jquery-ui.css">
  <script src="https://code.jquery.com/jquery-3.6.0.js"></script>
  <script src="https://code.jquery.com/ui/1.13.2/jquery-ui.js"></script>
  <script>
  $( function() {
    $( "#accordion" ).accordion();
  } );
  </script>
</head>
<body>
 
<div id="accordion">
  <h3>最初の見出し</h3>
  <div>最初のコンテンツ</div>
  <h3>2番目の見出し</h3>
  <div>2番目のコンテンツ</div>
</div>
 
</body>
</html>

これだけで、基本的なアコーディオンが実装できます。
ユーザーは見出しをクリックすることで、対応するコンテンツを展開・折りたたむことができます。

3. キーボード操作

アコーディオンの見出しにフォーカスがある場合、下記のキーコマンドが利用可能になります。

  • [↑]/[←]: 一つ前の見出しに戻ります。最初の見出しの場合、最後の見出しに移動します。

  • [↓]/[→]: 次の見出しに移動します。最後の見出しの場合、最初の見出しに移動します。

  • HOME: 最初の見出しに移動します。

  • END: 最後の見出しに移動します。

  • スペース/ENTER: 現在の見出しに関連付けられたコンテンツパネルを開きます。

フォーカスがコンテンツパネルにある場合、

  • CTRL + [↑]: 関連付けられた見出しに移動します。

4. オプション

Accordion ウィジェットには、以下のオプションが用意されています。これらのオプションを設定することで、アコーディオンの動作や見た目をカスタマイズできます。

オプション 説明 初期値
active 最初に開いているパネルを指定 Boolean or Integer 0
animate パネルの開閉アニメーションの動作を指定 Boolean or Number or String or Object {}
collapsible すべてのパネルを折りたためるか否かを指定 Boolean false
disabled true に設定すると、アコーディオンを無効化 Boolean false
event アコーディオンの見出しが反応してパネルを展開する際のイベントを指定 String "click"
header 見出しとなる要素を指定するセレクタ Selector "> li > :first-child,> :not(li):even"
heightStyle アコーディオンと各コンテンツパネルの高さについての制御を指定 String "auto"
icons 見出し用のアイコンを指定 Object {"header": "ui-icon-triangle-1-e", "activeHeader": "ui-icon-triangle-1-s"}
navigation Boolean false
navigationFilter Function() function matching location.href

例:アニメーションを遅くする、すべてのパネルを折りたためるようにする

$( "#accordion" ).accordion({
  animate: 500,
  collapsible: true
});

5. メソッド

Accordion ウィジェットには、以下のメソッドが用意されています。これらのメソッドを使用することで、アコーディオンの状態を変更したり、要素を取得したりできます。

メソッド 説明
activate( index ) 指定したパネルをアクティブにする
destroy() アコーディオンの機能を完全に削除
disable() アコーディオンを無効化
enable() アコーディオンを有効化
option( optionName ) 指定したオプションの現在の値を取得
option() オプションの各キーと値がペアとなったオブジェクトを返却
option( optionName, value ) 指定したオプションに値を設定
option( options ) 複数のオプションに値を設定
refresh() アコーディオンのパネルの高さを再描画
widget() アコーディオンを含めた要素を、jQueryオブジェクトとして返します。

例:2番目のパネルをアクティブにする

$( "#accordion" ).accordion( "option", "active", 1 );

6. イベント

Accordion ウィジェットには、以下のイベントが用意されています。これらのイベントを利用することで、アコーディオンの操作に合わせた処理を実行できます。

イベント 説明
activate( event, ui ) パネルがアクティブになった後(アニメーション完了後)にトリガー accordionactivate
beforeActivate( event, ui ) パネルがアクティブになる直前にトリガー accordionbeforeactivate
create( event, ui ) アコーディオンが生成された際にトリガー accordioncreate

例:パネルがアクティブになった際に、その見出しのテキストをコンソールに出力する

$( "#accordion" ).on( "accordionactivate", function( event, ui ) {
  console.log( "アクティブになった見出し: " + ui.newHeader.text() );
});

まとめ

jQuery UI Accordion ウィジェットは、コンテンツを整理して表示するための便利なツールです。
オプション、メソッド、イベントを活用することで、様々なニーズに対応したアコーディオンを作成することができます。

より良いユーザー体験のためのjQuery UI Accordionの活用法

Accordionを適切に活用することで、ユーザー体験を向上させることができます。ここでは、Accordionを使った具体的なケーススタディや、UXデザインのポイントを紹介します。

例えば、FAQセクションにAccordionを使用することで、ユーザーは必要な情報を迅速に見つけることができます。

参考文献

QA

1. jQuery UI Accordionはどのようにインストールしますか?

jQuery UIを公式サイトからダウンロードし、CSSとJavaScriptファイルをプロジェクトに含めてください。

2. Accordionの開閉アニメーションを変更できますか?

はい、アニメーションの速度やエフェクトをオプションで指定することで変更可能です。

3. どのような場面でAccordionを使用するのが効果的ですか?

コンテンツが多いページにおいて、情報をセクションごとに整理したい場合に効果的です。

その他の参考記事:jquery ui slide menu