top of page

Velo初心者向け|クリックで情報をスライド表示する「アコーディオン風」UIの作り方

  • 執筆者の写真: 篠原 誠
    篠原 誠
  • 5月7日
  • 読了時間: 3分
クリックで情報をスライド表示するVelo初心者向け「アコーディオン風」UIの作成方法を説明する明るい日本語チュートリアルバナー

✅ はじめに

Webサイトを訪れた際、「クリックすると情報がスライドして表示される」という動きを見たことがありませんか?FAQや商品説明など、限られたスペースに効率よく情報を整理する手法として人気のUI(ユーザーインターフェース)です。


今回はVelo初心者の方向けに、この便利なUIの基本的な作り方をご紹介します。

正確には「アコーディオン」ではなく「アコーディオン風」と呼ばれるものですが、初心者でも簡単に試せて、効果的に使えるので、ぜひ挑戦してみてください。



🎯 今回つくるもの

  • 質問をクリックすると、回答がスライドして表示される

  • もう一度クリックすると、回答がスライドして閉じる

  • 複数の項目を同時に開けるシンプルな仕組み(※1つだけ開く本格アコーディオンの作り方は別記事でご紹介します)



🧰 まずは準備から

最初に、Wix Studioのエディターで以下を準備します。

  • 質問用のテキスト要素(例:#question1)

    例:「Q. Veloとはどんなツールですか?」

質問用のテキスト要素を入力する

  • 回答用のボックスやテキスト要素(例:#answer1)

    例:「A. Wix StudioサイトをJavaScriptで自由に拡張できるツールです。」

回答用のボックスやテキスト要素を入力する

回答部分は初期状態を 「折りたたまれた状態(Collapse)」 に設定しましょう。ここまで準備ができたら、次はVeloでクリック時の動きを実装していきましょう。



💻 Veloで実装してみよう(基本コード)

以下のコードをVeloエディタに追加します。


$w.onReady(function () {
  // 質問をクリックしたときの動きを指定
  $w("#question1").onClick(() => {
    if ($w("#answer1").collapsed) {
      // 折りたたまれていたら開く
      $w("#answer1").expand();
    } else {
      // すでに開いていたら閉じる
      $w("#answer1").collapse();
    }
  });
});


Veloで実装する

🔍 コードの中身を解説します

  • .collapsed は「要素が折りたたまれているかどうか」を判定するプロパティで、クリック時に「開くか閉じるか」を判断するために使っています。


  • .expand() と .collapse() はそれぞれ「スライドして開く」「スライドして閉じる」動作を行うメソッドです。即座に表示する.show()や非表示にする.hide()とは違い、動きが滑らかでプロっぽさを演出できます。



🧪 複数の項目への応用も簡単

この仕組みを使って、複数の質問と回答を簡単に作成できます。

例:#question2 、#answer2 といった感じでIDを追加し、コードもコピーして調整するだけで、アコーディオン風UIを簡単に拡張できます。



✨ 実際の動作を確認してみましょう

設定が完了したら、ページをプレビューして動作を確認してみましょう。

下のように「Q. 質問部分」をクリックすると、回答エリアがスライドして表示/非表示に切り替わるようになります。


これで、シンプルながら使いやすい“アコーディオン風”のUIが実現できました!

クリックをすると

回答が表示される

🎨 デザインのちょっとしたコツ

よりユーザーが操作しやすくするには、質問部分に 「+」「▶」などのアイコン を入れると、「ここをクリックすると何かが起こる」ということが直感的に伝わります。


また、回答ボックスに 適度な余白や背景色 を付けることで、展開時の見やすさがぐっと良くなります。



📝 まとめ

今回ご紹介した「アコーディオン風」UIは、Velo初心者の方でも簡単に導入できるうえに、実務での応用性も抜群です。


なお、「複数を同時に開ける仕組み」ではなく、「1つだけ開いて他は閉じる本格的なアコーディオンUI」を作りたい方のための記事も後日公開予定です。そちらもぜひお楽しみに!

コメント


この投稿へのコメントは利用できなくなりました。詳細はサイト所有者にお問い合わせください。
bottom of page