スクロール位置で自動表示するドロワーメニューの作り方
HTML・CSS・JavaScriptを使って、ページを一定位置までスクロールしたタイミングで自動表示されるドロワーメニューを作る方法を紹介します。このサンプルでは、指定したスクロール位置を超えると画面横からドロワーメニューが表示され、閉じるボタンや背景クリックで閉じる動作を実装しています。記事下部の案内表示やキャンペーン告知、注意喚起、お問い合わせへの誘導などに利用できます。
コードについて
本記事のコードはサンプルコードです。ご利用前に必ず動作確認を行ってください。
免責事項 本コードの利用により発生した損害について、当サイトは一切の責任を負いません。
免責事項 本コードの利用により発生した損害について、当サイトは一切の責任を負いません。
デモ
コードをコピーして使おう!
<!DOCTYPE html>
<html lang="ja">
<head>
<!-- 文字コードを指定 -->
<meta charset="UTF-8">
<!-- スマホ表示に対応 -->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- ページタイトル -->
<title>スクロール位置で自動表示するドロワーメニュー</title>
<!-- CSSファイルを読み込み -->
<link rel="stylesheet" href="style.css">
</head>
<body>
<!-- デモ全体を囲むエリア -->
<div class="scroll-position-auto-drawer-menu_wrap">
<!-- 見出し -->
<div class="scroll-position-auto-drawer-menu_title">
スクロール位置で自動表示するドロワーメニュー
</div>
<!-- 説明文 -->
<p class="scroll-position-auto-drawer-menu_text">
ページを下へスクロールして指定位置を過ぎると、ドロワーメニューが自動表示されます。
</p>
</div>
<!-- スクロール量を確保する余白 -->
<div class="scroll-position-auto-drawer-menu_space">
<div style="padding:20px;text-align:center;color:#4b5563;">
↓ 下へスクロールしてください ↓
</div>
<div style="height:1000px;"></div>
</div>
<div style="padding:20px;text-align:center;color:#4b5563;">
↓ 下へスクロールしてください ↓
</div>
<div style="height:1000px;"></div>
</div>
<!-- ドロワーメニュー背景 -->
<div class="scroll-position-auto-drawer-menu_overlay" data-drawer-overlay>
<!-- ドロワーメニュー本体 -->
<div class="scroll-position-auto-drawer-menu_drawer" role="dialog" aria-modal="true">
<!-- ドロワーメニューの見出し -->
<div class="scroll-position-auto-drawer-menu_drawer-title">
スクロール位置で表示
</div>
<!-- ドロワーメニューの説明文 -->
<p class="scroll-position-auto-drawer-menu_drawer-text">
このドロワーメニューは、ページを一定位置までスクロールしたタイミングで自動表示されます。
</p>
<!-- 閉じるボタン -->
<button class="scroll-position-auto-drawer-menu_close" type="button" data-drawer-close>
閉じる
</button>
</div>
</div>
<!-- JavaScriptファイルを読み込み -->
<script src="script.js"></script>
</body>
</html>
ファイル構成と設置方法
このサンプルでは、HTML・CSS・JavaScriptをそれぞれ別ファイルに分けて使用します。index.html、style.css、script.js を同じフォルダに配置してください。
sample/
├── index.html
├── style.css
└── script.js
index.html をブラウザで開き、ページを下へスクロールすると、指定した位置でドロワーメニューが自動表示されます。開くタイミングを変更したい場合は、script.js 内の window.scrollY > 300 の数値を変更してください。
コメント