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などすべてのファイルが必要な場合は、「サンプル一式をダウンロード」をクリックしてください。
ファイル構成と設置方法
このサンプルはHTML・CSS・JavaScriptの3ファイルで構成されています。HTMLでドロワーメニュー、通常のメニューリンク、SNSリンク、開閉ボタンを配置し、CSSで画面左側から表示されるドロワーメニューのデザインを設定します。JavaScriptではis-activeクラスを付け外しして、ドロワーメニューの表示と非表示を切り替えます。
sample/
├── index.html
├── style.css
└── script.js
各ファイルの役割
index.htmlはSNSリンク付きドロワーメニューの構造を作るファイルです。「メニューを開く」ボタン、通常のメニューリンク、LINE・Facebook・X・InstagramのSNSリンク、「閉じる」ボタンを配置しています。SNSリンクではimg要素を使って各SNSのアイコン画像を表示しています。
style.cssはドロワーメニューのデザインを設定するファイルです。案内エリア、開くボタン、背景オーバーレイ、ドロワーメニュー、通常のメニューリンク、SNSリンク、SNSアイコン、閉じるボタンの見た目を設定しています。ドロワーメニューを開いたときは、左側からスライドして表示されるアニメーションを設定しています。
script.jsはドロワーメニューを開閉するファイルです。「メニューを開く」をクリックすると背景オーバーレイへis-activeクラスを追加してドロワーメニューを表示します。「閉じる」ボタンまたはドロワーメニュー外側の背景をクリックするとis-activeクラスを削除して閉じます。
設置方法・使い方
sampleフォルダへindex.html、style.css、script.jsを配置します。3つのファイルを同じ階層へ保存したあと、sample/index.htmlをブラウザで開いてください。index.htmlからstyle.cssとscript.jsを読み込むため、追加のJavaScriptライブラリは必要ありません。
SNSリンクで使用するアイコン画像は、index.html内の各img要素のsrc属性で指定しています。サンプルの画像URLをそのまま使用せず、実際に設置するサイトで使用するSNSアイコン画像のURLへ変更してください。
「メニューを開く」をクリックすると、画面左側からドロワーメニューが表示されます。ドロワー内には通常のメニューリンクとSNSリンクが表示され、「閉じる」ボタンまたはドロワー外側の半透明の背景をクリックすると閉じます。
カスタマイズできる内容
index.htmlでは通常のメニューリンクの文字、リンク数、リンク先を変更できます。各href="#"を実際に移動するページのURLへ変更してください。
SNSリンクも同様に、各href="#"をLINE、Facebook、X、InstagramなどのSNSページのURLへ変更できます。SNSの種類を変更する場合は、img要素のsrc属性、alt属性、リンク内のSNS名も合わせて変更してください。
style.cssではドロワーメニューの横幅、背景色、余白、通常メニューの間隔、SNSリンクの大きさ、SNSアイコンのサイズ、ボタンの色、背景オーバーレイの濃さ、スライド速度などを変更できます。
数値調整
style.css
max-width:700px;
案内エリアの最大横幅です。値を大きくすると案内エリアが横に広がります。
padding:32px;
案内エリアの内側余白です。値を大きくすると内容と外枠の間隔が広がります。
border-radius:18px;
案内エリアの角丸です。値を大きくすると丸みが強くなります。
font-size:24px;
案内エリアのタイトルとドロワーメニュー内のタイトルに使用している文字サイズです。値を大きくすると文字が大きくなります。
padding:12px 24px;
「メニューを開く」ボタンの内側余白です。12pxが上下、24pxが左右の余白です。
background:rgba(0,0,0,.45);
ドロワーメニューを表示したときの背景オーバーレイの色と透明度です。最後の.45を大きくすると背景が濃くなり、小さくすると薄くなります。
width:340px;
ドロワーメニューの横幅です。値を大きくするとドロワーメニューが横に広がり、小さくすると細くなります。
max-width:90%;
ドロワーメニューが画面幅を大きく超えないようにする最大横幅です。値を変更すると、画面に対してドロワーメニューが占める割合を調整できます。
padding:24px;
ドロワーメニュー本体の内側余白です。値を大きくするとメニュー内容と画面端の間隔が広がります。
animation:sns-links-drawer-menu-slide .35s ease forwards;
ドロワーメニューが左側から表示されるアニメーションの時間です。.35sを大きくするとゆっくり表示され、小さくすると速く表示されます。
gap:8px;
通常のメニューリンク同士の間隔です。値を大きくするとリンク同士の間隔が広がります。
margin:28px 0 0;
通常のメニューリンクとSNSリンク一覧との間隔です。28pxを大きくするとSNSリンク一覧が下へ離れます。
gap:12px;
SNSリンク同士の間隔です。値を大きくすると各SNSリンクの間隔が広がります。
min-height:52px;
各SNSリンクの最小高さです。値を大きくするとSNSリンクが縦方向に大きくなります。
width:32px;
height:32px;
SNSアイコン画像の横幅と高さです。両方の値を同じように変更すると、アイコンの表示サイズを調整できます。
margin:24px 0 0;
SNSリンク一覧と「閉じる」ボタンとの間隔です。24pxを大きくすると間隔が広がります。
レスポンシブ対応
通常時のドロワーメニューはwidth:340px;、max-width:90%;で表示します。画面幅640px以下ではwidth:100%;とmax-width:100%;へ切り替わり、ドロワーメニューが画面幅いっぱいに表示されます。
画面幅640px以下ではページ全体の余白をpadding:24px 12px;、案内エリアをpadding:24px 18px;、ドロワーメニューをpadding:24px 20px;へ変更します。また、「メニューを開く」ボタンをwidth:100%;にすることで、スマートフォンでも押しやすい表示にしています。
コメント