まず、HTMLのマークアップで各サイドバー要素を作成します。例えば、次のようなコードを使用します:
<div x-data="{ open: false }">
<button @click="open = !open">サイドバーを開く</button>
<div x-show="open">
<!-- サイドバーの内容 -->
</div>
</div>
上記のコードでは、x-data
ディレクティブを使用してopen
という変数を定義し、初期値をfalse
に設定しています。x-show
ディレクティブを使用して、open
変数がtrue
の場合にのみサイドバーを表示します。@click
ディレクティブを使用して、ボタンがクリックされたときにopen
変数の値を切り替えます。
このマークアップを使って、複数のサイドバーを作成することができます。各サイドバーは独立して動作し、一度に1つずつのみ開くことができます。たとえば、以下のようなコードを使用して2つのサイドバーを作成することができます:
<div x-data="{ open1: false, open2: false }">
<button @click="open1 = !open1">サイドバー1を開く</button>
<div x-show="open1">
<!-- サイドバー1の内容 -->
</div>
<button @click="open2 = !open2">サイドバー2を開く</button>
<div x-show="open2">
<!-- サイドバー2の内容 -->
</div>
</div>
上記のコードでは、open1
とopen2
という2つの変数を定義し、各サイドバーの状態を保持します。ボタンをクリックすると、それぞれの変数の値が切り替わり、対応するサイドバーが表示されるようになります。
Alpine.jsを使ってサイドバーを一度に1つずつ開く方法を説明しました。この方法を使えば、複数のサイドバーを簡単に管理することができます。さらに、必要に応じてCSSやトランジションを追加することもできます。