SNSリンク付きドロワーメニューの作り方【HTML/CSS/JavaScript・サンプルコード付き】

ドロワーメニュー

SNSリンク付きドロワーメニューを作る方法

SNSリンク付きドロワーメニューを作る方法を紹介します。このサンプルでは、通常のメニュー項目に加えて、X(旧Twitter)、Instagram、YouTube、FacebookなどのSNSリンクをドロワーメニュー内へまとめて配置するレイアウトをHTML・CSS・JavaScriptで実装します。「メニューを開く」ボタンをクリックすると画面左側からドロワーメニューが表示され、サイト内メニューとSNSリンクをまとめて確認できます。

SNSへの導線を分かりやすく配置することで、サイト訪問者が公式アカウントへアクセスしやすくなります。企業サイト、ブログ、ポートフォリオサイト、ECサイトなど、SNSを活用しているWebサイトで利用しやすい構成です。

SNSアイコン、SNS名、リンク先URL、メニュー項目、配色、ドロワーメニューの横幅、余白、角丸、影、表示アニメーションの速度などを自由に変更できます。画面幅640px以下では画面幅いっぱいに表示されるため、スマートフォン・タブレット・PCでも快適に利用できます。

コードについて 本記事のコードはサンプルコードです。ご利用前に必ず動作確認を行ってください。
免責事項 本コードの利用により発生した損害について、当サイトは一切の責任を負いません。

デモ

「メニューを開く」をクリックすると、通常のメニュー項目とLINE、Facebook、X、Instagramへのリンクをまとめたドロワーメニューが表示されます。「閉じる」ボタンまたは背景部分をクリックすると閉じます。

コードをコピーして使おう!

<!DOCTYPE html>
<html lang="ja">

<head>

  <!-- 文字コードをUTF-8に設定 -->
  <meta charset="UTF-8">

  <!-- スマートフォンで適切な表示サイズにする -->
  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <!-- ブラウザのタブに表示するページタイトル -->
  <title>SNSリンク付きドロワーメニュー</title>

  <!-- CSSファイルを読み込む -->
  <link rel="stylesheet" href="style.css">

</head>

<body>

  <!-- ページの案内エリア -->
  <main class="sns-links-drawer-menu_wrap">

    <!-- 案内エリアのタイトル -->
    <div class="sns-links-drawer-menu_title">
      SNSリンク付きドロワーメニュー
    </div>

    <!-- ドロワーメニューの説明文 -->
    <p class="sns-links-drawer-menu_text">
      通常のメニュー項目とSNSリンクをまとめて表示できます。
    </p>

    <!-- ドロワーメニューを開くボタン -->
    <button
      class="sns-links-drawer-menu_open"
      type="button"
      data-sns-links-drawer-open>
      メニューを開く
    </button>

  </main>

  <!-- ドロワーメニュー表示時の背景 -->
  <div
    class="sns-links-drawer-menu_overlay"
    data-sns-links-drawer-overlay
    aria-hidden="true">

    <!-- ドロワーメニュー本体 -->
    <aside
      class="sns-links-drawer-menu_drawer"
      role="dialog"
      aria-modal="true"
      aria-labelledby="sns-links-drawer-menu-title">

      <!-- ドロワーメニューのタイトル -->
      <div
        class="sns-links-drawer-menu_drawer-title"
        id="sns-links-drawer-menu-title">
        メニュー
      </div>

      <!-- 通常のメニューリンク一覧 -->
      <nav
        class="sns-links-drawer-menu_nav"
        aria-label="メインメニュー">

        <!--
          href属性の#をホームページのURLへ変更する
          「ホーム」を表示したいメニュー名へ変更できる
        -->
        <a href="#">ホーム</a>

        <!--
          href属性の#をサービスページのURLへ変更する
          「サービス」を表示したいメニュー名へ変更できる
        -->
        <a href="#">サービス</a>

        <!--
          href属性の#をお知らせページのURLへ変更する
          「お知らせ」を表示したいメニュー名へ変更できる
        -->
        <a href="#">お知らせ</a>

        <!--
          href属性の#をお問い合わせページのURLへ変更する
          「お問い合わせ」を表示したいメニュー名へ変更できる
        -->
        <a href="#">お問い合わせ</a>

      </nav>

      <!-- SNSリンク一覧 -->
      <div class="sns-links-drawer-menu_sns">

        <!-- SNSリンク一覧の見出し -->
        <div class="sns-links-drawer-menu_sns-title">
          公式SNS
        </div>

        <!--
          href属性の#をLINEのURLへ変更する
          src属性はLINEアイコンの画像URL
          alt属性には画像の内容が分かる「LINE」を指定する
          「LINE」を表示したいリンク名へ変更できる
        -->
        <a href="#" aria-label="LINEを開く">
          <img
            src="http://maruhinoto.com/wp-content/uploads/2026/07/Line.png"
            alt="LINE">
          <span>LINE</span>
        </a>

        <!--
          href属性の#をFacebookのURLへ変更する
          src属性はFacebookアイコンの画像URL
          alt属性には画像の内容が分かる「Facebook」を指定する
          「Facebook」を表示したいリンク名へ変更できる
        -->
        <a href="#" aria-label="Facebookを開く">
          <img
            src="http://maruhinoto.com/wp-content/uploads/2026/07/facebook.png"
            alt="Facebook">
          <span>Facebook</span>
        </a>

        <!--
          href属性の#をXのURLへ変更する
          src属性はXアイコンの画像URL
          alt属性には画像の内容が分かる「X」を指定する
          「X」を表示したいリンク名へ変更できる
        -->
        <a href="#" aria-label="Xを開く">
          <img
            src="http://maruhinoto.com/wp-content/uploads/2026/07/X.png"
            alt="X">
          <span>X</span>
        </a>

        <!--
          href属性の#をInstagramのURLへ変更する
          src属性はInstagramアイコンの画像URL
          alt属性には画像の内容が分かる「Instagram」を指定する
          「Instagram」を表示したいリンク名へ変更できる
        -->
        <a href="#" aria-label="Instagramを開く">
          <img
            src="http://maruhinoto.com/wp-content/uploads/2026/07/instagram.png"
            alt="Instagram">
          <span>Instagram</span>
        </a>

      </div>

      <!-- ドロワーメニューを閉じるボタン -->
      <button
        class="sns-links-drawer-menu_close"
        type="button"
        data-sns-links-drawer-close>
        閉じる
      </button>

    </aside>

  </div>

  <!-- JavaScriptファイルを読み込む -->
  <script src="script.js"></script>

</body>

</html>

ファイル構成と設置方法

このサンプルはHTML・CSS・JavaScriptの3ファイルで構成されています。通常のナビゲーションに加えて、LINE、Facebook、X、Instagramへのリンクをドロワーメニュー内へまとめて配置できるレイアウトです。HTMLでメニューとSNSリンクを配置し、CSSでレイアウトやデザインを整え、JavaScriptでドロワーメニューの開閉処理を行っています。

サイト内ページへの導線とSNSへの導線を1つのメニューへまとめられるため、企業サイト、ブログ、ポートフォリオ、ECサイトなど幅広いWebサイトで利用できます。SNSアイコン画像を変更するだけで、他のサービスにも簡単に対応できます。

メニュー項目、SNSリンク、リンク先URL、アイコン画像、配色、横幅、余白、角丸、影、背景の暗さ、表示アニメーションの速度などを自由に変更できます。画面幅640px以下では画面幅いっぱいに表示されるため、スマートフォン・タブレット・PCでも利用できます。

sample/
├── index.html
├── style.css
└── script.js

各ファイルの役割
index.html
ドロワーメニュー全体の構造、通常メニュー、SNSリンク、アイコン画像、開閉ボタンを配置しています。メニュー名、SNS名、リンク先URL、画像URLを自由に変更できます。

style.css
ページ全体、背景オーバーレイ、ドロワーメニュー、通常メニュー、SNSリンク、アイコン画像、ボタン、表示アニメーション、レスポンシブ表示を設定しています。色、余白、横幅、角丸、影などのデザインを変更できます。

script.js
「メニューを開く」ボタン、「閉じる」ボタン、背景クリックによるドロワーメニューの開閉処理を行っています。

設置方法・使い方
sampleフォルダ内へindex.htmlstyle.cssscript.jsを同じ階層へ配置します。sample/index.htmlをブラウザで開き、「メニューを開く」をクリックすると通常メニューとSNSリンクをまとめたドロワーメニューを確認できます。

カスタマイズできる内容
index.htmlではメニュー項目、SNS名、リンク先URL、アイコン画像URL、ボタンの文字を変更できます。SNSリンクは同じ形式のaタグを追加・削除するだけで自由に増減できます。

style.cssでは背景色、文字色、ボタン色、ドロワーメニューの横幅、余白、角丸、影、SNSリンクのデザイン、背景の暗さ、アニメーション速度を変更できます。

script.jsではドロワーメニューを開閉する処理や背景クリックで閉じる動作を変更できます。

数値調整
style.csswidth:340px;はドロワーメニューの横幅です。padding:24px;は内側余白、gap:12px;はSNSリンク同士の間隔です。background:rgba(0,0,0,.45);.45は背景の暗さを表し、値を大きくすると暗く、小さくすると背景が透けます。animation:sns-links-drawer-menu-slide .35s ease forwards;.35sは表示アニメーション時間です。値を大きくするとゆっくり表示され、小さくすると速く表示されます。

レスポンシブ対応
style.cssではwidth:100%max-width:100%overflow-y:auto@media screen and (max-width:640px)を使用しています。スマートフォンではドロワーメニューを画面幅いっぱいに表示し、開くボタンも横幅いっぱいへ広げています。タブレット・PCでも画面サイズに合わせて快適に利用できます。



コメント