スクロールすると固定ヘッダーが浮き上がるデザインを作る方法
スクロールすると固定ヘッダーが浮き上がるデザインを作る方法を紹介します。ページ上部に固定したヘッダーへスクロール時だけ影を付けることで、本文エリアより手前にあるような立体感を出せます。ヘッダーとコンテンツの境界が分かりやすくなるため、固定ヘッダーを自然に見せたいWebサイトに向いています。
このサンプルでは、HTML、CSS、JavaScriptを使って、スクロール位置に応じてヘッダーの見た目を切り替えます。ページ上部では影のないフラットなヘッダーを表示し、少しスクロールするとJavaScriptでクラスを追加して、CSSの box-shadow による影を表示します。一番上へ戻ると影が消えるため、状態の変化が分かりやすい構成です。
ブログ、サービスサイト、コーポレートサイト、ランディングページなど、スクロール量のあるページで使いやすい実装です。影の濃さ、広がり、ヘッダーの高さ、背景色、文字色、メニュー間隔などはCSSから調整できます。固定ヘッダーに軽い動きを加えたい場合や、スクロール中のヘッダーを見やすくしたい場合に活用できます。
免責事項 本コードの利用により発生した損害について、当サイトは一切の責任を負いません。
デモ
コードをコピーして使おう!
<!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>
<!-- 固定ヘッダー -->
<header class="scroll-shadow-header_header" id="scroll-shadow-header">
<!-- サイト名 -->
<a class="scroll-shadow-header_site-name" href="#">
Sample Site
</a>
<!-- ナビメニュー -->
<nav class="scroll-shadow-header_nav" aria-label="メニュー">
<a href="#">ホーム</a>
<a href="#">サービス</a>
<a href="#">料金</a>
<a href="#">会社情報</a>
</nav>
<!-- お問い合わせリンク -->
<a class="scroll-shadow-header_contact" href="#">
お問い合わせ
</a>
</header>
<!-- スクロール確認用の本文 -->
<main class="scroll-shadow-header_main">
<section class="scroll-shadow-header_section">
<h1>スクロール時に影が付くヘッダー</h1>
<p>
ページを下へスクロールすると、固定ヘッダーの下に影が付き、浮き上がったように見えます。
</p>
</section>
<section class="scroll-shadow-header_section">
<h2>セクション1</h2>
<p>
一番上では影のないフラットなヘッダーとして表示されます。
</p>
</section>
<section class="scroll-shadow-header_section">
<h2>セクション2</h2>
<p>
少しでもスクロールするとJavaScriptでクラスを追加し、CSSの影を表示します。
</p>
</section>
<section class="scroll-shadow-header_section">
<h2>セクション3</h2>
<p>
一番上へ戻ると追加したクラスを外し、ヘッダーの影を消します。
</p>
</section>
<section class="scroll-shadow-header_section">
<h2>セクション4</h2>
<p>
固定ヘッダーと本文の境界が分かりやすくなり、スクロール中の見た目を整えられます。
</p>
</section>
<section class="scroll-shadow-header_section">
<h2>セクション5</h2>
<p>
影の濃さや広がりはCSSのbox-shadowから調整できます。
</p>
</section>
<section class="scroll-shadow-header_section">
<h2>セクション6</h2>
<p>
本文量が多いページで確認すると、スクロール時にヘッダーが浮き上がる動きが分かりやすくなります。
</p>
</section>
</main>
<!-- JavaScriptファイルを読み込み -->
<script src="script.js"></script>
</body>
</html>
ファイル構成と設置方法
このサンプルはHTMLファイル、CSSファイル、JavaScriptファイルの3つで構成されています。HTMLファイルに固定ヘッダーと本文の構造を記述し、CSSファイルでヘッダーの固定表示、影、余白、文字色などのデザインを設定します。JavaScriptファイルではスクロール位置を判定し、ヘッダーへ影を付けるクラスを追加・削除します。
sample/
├── index.html
├── style.css
└── script.js
index.htmlをブラウザで開き、ページを下へスクロールすると固定ヘッダーの下に影が付き、浮き上がったように表示されます。一番上へ戻ると影は消えます。ヘッダーの高さ、背景色、文字色、メニュー間隔、影の濃さや広がり、影が付く速度はstyle.cssから調整できます。
コメント